课堂代码

1、Addition.java

// An addition program 

import javax.swing.JOptionPane;  // import class JOptionPane

public class Addition {
   public static void main( String args[] )
   {
      String firstNumber,   // first string entered by user
             secondNumber;  // second string entered by user
      int number1,          // first number to add
          number2,          // second number to add
          sum;              // sum of number1 and number2

      // read in first number from user as a string
      firstNumber =
         JOptionPane.showInputDialog( "Enter first integer" );

      // read in second number from user as a string
      secondNumber =
         JOptionPane.showInputDialog( "Enter second integer" );

      // convert numbers from type String to type int
      number1 = Integer.parseInt( firstNumber ); 
      number2 = Integer.parseInt( secondNumber );

      // add the numbers
      sum = number1 + number2;

      // display the results
      JOptionPane.showMessageDialog(
         null, "The sum is " + sum, "Results",
         JOptionPane.PLAIN_MESSAGE );

      System.exit( 0 );   // terminate the program
   }
}

  

将两个整数相加并显示结果。

程序会显示一个提示框,要求用户输入第一个整数。输入值会以字符串的形式被保存。接下来会显示另一个提示框,要求输入第二个整数。输入值会以字符串的形式被保存

然后,将这两个字符串类型的数值转换为整型,并保存

number1和number2结果保存在sum变量中。

用户将会看到一个简单的提示框,显示两个整数相加的结果。

 

2、EnumTest.java

public class EnumTest {

	public static void main(String[] args) {
		Size s=Size.SMALL;
		Size t=Size.LARGE;
		//s和t引用同一个对象?
		System.out.println(s==t);  //
		//是原始数据类型吗?
		System.out.println(s.getClass().isPrimitive());
		//从字符串中转换
		Size u=Size.valueOf("SMALL");
		System.out.println(s==u);  //true
		//列出它的所有值
		for(Size value:Size.values()){
			System.out.println(value);
		}
	}

}
 enum Size{SMALL,MEDIUM,LARGE};

  因为 s 与 t 引用对象不同,会输出 false

  枚举类型为引用类型,所以不是原始数据类型,会输出false

  s引用的为SMALL u也为SMALL  所以这项判断是正确的,会输出true

  最后是输出所有枚举类型的值SMALL MEDIUM LARGE

 

3、InputTest.java

import java.util.*;

public class InputTest
{  
   public static void main(String[] args)
   {  
      Scanner in = new Scanner(System.in);

      System.out.print("What is your name? ");
      String name = in.nextLine();

      System.out.print("How old are you? ");
      int age = in.nextInt();
      
      
     int i;
     String value="100";
     i=Integer.parseInt(value);
     i=200;
     String s=String.valueOf(i);
  
      System.out.println("Hello, " + name + ". Next year, you'll be " + (age + 1));
  
      
   }
}

  一个输入输出的程序 输入姓名 年龄 输出明年的年龄

  被注释的代码作用 它将字符串"value"转换为整数并赋值给变量’i’。然后,它将’i’的值更改为200,并将200转换为字符串并赋值给变量’s’。和这个程序好像没有关系

  不过学会了字符串与整型的相互转化

 

4、RandomStr.java

public class RandomStr
{
	public static void main(String[] args) 
	{
		//定义一个空字符串
		String result = "";
		//进行6次循环
		for(int i = 0 ; i < 6 ; i ++)
		{
			//生成一个97~122的int型的整数
			int intVal = (int)(Math.random() * 26 + 97);
			//将intValue强制转换为char后连接到result后面
			result = result + (char)intVal;
		}
		//输出随机字符串
		System.out.println(result);
 	}
}

 生成随机数

 随机数转换为字符

 字符存入字符串

    随机生成验证码程序中可以用,考虑改为4位

 

5、SwitchTest.java

import java.awt.Graphics;
import javax.swing.*;

public class SwitchTest extends JApplet {
   int choice;   

   public void init()
   {
      String input;

      input = JOptionPane.showInputDialog( 
                 "Enter 1 to draw lines\n" +
                 "Enter 2 to draw rectangles\n" +
                 "Enter 3 to draw ovals\n" );

      choice = Integer.parseInt( input );
   }

   public void paint( Graphics g )
   {
      for ( int i = 0; i < 10; i++ ) { 
         switch( choice ) {
            case 1:
               g.drawLine( 10, 10, 250, 10 + i * 10 );
               break;
            case 2:
               g.drawRect( 10 + i * 10, 10 + i * 10,
                           50 + i * 10, 50 + i * 10 );
               break;
            case 3:
               g.drawOval( 10 + i * 10, 10 + i * 10,
                           50 + i * 10, 50 + i * 10 );
               break;
            default:
               JOptionPane.showMessageDialog(
                  null, "Invalid value entered" );
         } // end switch
      } // end for
   } // end paint()
} // end class SwitchTest

  放到编译器中,发现没有主函数

  自己添加了一个主函数

import java.awt.Graphics;
import javax.swing.*;

public class Main extends JApplet {
    int choice;

    public void init()
    {
        String input;

        input = JOptionPane.showInputDialog(
                "Enter 1 to draw lines\n" +
                        "Enter 2 to draw rectangles\n" +
                        "Enter 3 to draw ovals\n" );

        choice = Integer.parseInt( input );
    }

    public void paint( Graphics g )
    {
        for ( int i = 0; i < 10; i++ ) {
            switch( choice ) {
                case 1:
                    g.drawLine( 10, 10, 250, 10 + i * 10 );
                    break;
                case 2:
                    g.drawRect( 10 + i * 10, 10 + i * 10,
                            50 + i * 10, 50 + i * 10 );
                    break;
                case 3:
                    g.drawOval( 10 + i * 10, 10 + i * 10,
                            50 + i * 10, 50 + i * 10 );
                    break;
                default:
                    JOptionPane.showMessageDialog(
                            null, "Invalid value entered" );
            } // end switch
        } // end for
    } // end paint()

    public static void main(String[] args) {
        Main applet = new Main();
        applet.init();
        applet.start();
        JFrame frame = new JFrame();
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.add(applet);
        frame.setSize(300, 300);
        frame.setVisible(true);
    }
}

  生成直线 矩形 和圆

 

 6、Test.java

public class Test {
public static void main(String[] args) {
	int intValue=100;
	long longValue=intValue;
	double doubleValue=1234567890;
	float floatValue=(float)doubleValue;
	System.out.println(floatValue);//1.23456794E9
	
	int X=100;
	int Y=200;
	System.out.println("X+Y="+X+Y);
	System.out.println(X+Y+"=X+Y");
	doNotRunme();
	
}

}

  

先删除了一部分代码

第一部分 int类型转换为long long类型 double类型转换为float类型 前者为低精度转换为高精度没有问题 而后者是高精度转换为低精度 造成精度丢失 产生错误

第二部分 主要是两个输出 第一个输出结果为100200 表示+X+Y不能将其想加

删除的代码是

doNotRunme();

        String string="";
        double d1=1000.123;
        double d2=1000.123;
        if(Math.abs(d2-d1)<1e-10)
        {

        }
public static void doNotRunme()
    {
        doNotRunme();
    }

 

7、TestBigDecimal.java

import java.math.BigDecimal;

public class TestBigDecimal
{
	public static void main(String[] args) 
	{
		BigDecimal f1 = new BigDecimal("0.05");
		BigDecimal f2 = BigDecimal.valueOf(0.01);
		BigDecimal f3 = new BigDecimal(0.05);
		System.out.println("下面使用String作为BigDecimal构造器参数的计算结果:");
		System.out.println("0.05 + 0.01 = " + f1.add(f2));
		System.out.println("0.05 - 0.01 = " + f1.subtract(f2));
		System.out.println("0.05 * 0.01 = " + f1.multiply(f2));
		System.out.println("0.05 / 0.01 = " + f1.divide(f2));
		System.out.println("下面使用double作为BigDecimal构造器参数的计算结果:");
		System.out.println("0.05 + 0.01 = " + f3.add(f2));
		System.out.println("0.05 - 0.01 = " + f3.subtract(f2));
		System.out.println("0.05 * 0.01 = " + f3.multiply(f2));
		System.out.println("0.05 / 0.01 = " + f3.divide(f2));
	}
}

 

下面使用String作为BigDecimal构造器参数的计算结果:
0.05 + 0.01 = 0.06
0.05 - 0.01 = 0.04
0.05 * 0.01 = 0.0005
0.05 / 0.01 = 5.00

下面使用double作为BigDecimal构造器参数的计算结果:
0.05 + 0.01 = 0.060000000000000005
0.05 - 0.01 = 0.04000000000000001
0.05 * 0.01 = 0.0005000000000000001
0.05 / 0.01 = 5.000000000000001


8、TestDouble.javaTestDouble.java
 
public class TestDouble {

    public static void main(String args[]) {
        System.out.println("0.05 + 0.01 = " + (0.05 + 0.01));
        System.out.println("1.0 - 0.42 = " + (1.0 - 0.42));
        System.out.println("4.015 * 100 = " + (4.015 * 100));
        System.out.println("123.3 / 100 = " + (123.3 / 100));
    }
}

  

0.05 + 0.01 = 0.06
1.0 - 0.42 = 0.58
4.015 * 100 = 401.5
123.3 / 100 = 1.233

 

 

 
posted @ 2023-09-15 11:57  财神给你送元宝  阅读(19)  评论(0编辑  收藏  举报