java动手动脑

2020年9月29日:

动手动脑第一项:

public class 枚举类
{
 public static void main(String[] args)
 {
  Size s=Size.SMALL;
  Size t=Size.LARGE;
  System.out.println(s==t); 
  System.out.println(s.getClass().isPrimitive());
  Size u=Size.valueOf("SMALL");
  System.out.println(s==u);  
  for(Size value:Size.values())
  {
   System.out.println(value);
  }
 }
 }
enum Size{SMALL,MEDIUM,LARGE};

 

 结论:枚举类中定义的是一些确定的常量,并且可以直接使用枚举类型或者对枚举类型赋值,这两种的含义是一样的。

动手动脑第二项:

原码:原码就是符号位加上真值的绝对值, 即用第一位表示符号, 其余位表示值.

 

反码:

正数的反码是其本身

负数的反码是在其原码的基础上, 符号位不变,其余各个位取反

 

补码:

正数的补码就是其本身

负数的补码是在其原码的基础上, 符号位不变, 其余各位取反, 最后+1

 

实例:+7        原码:0 0000111               反码:0 0000111       补码:0 0000111

-7   原码:1 0000111              反码:1 1111000     补码:1 1111001

动手动脑第三项:

public class 枚举类{
private static int Albert = 1;
public static void main(String[] args) {
int Albert = 2;
System.out.println(Albert);
}
}

 

动手动脑第四项:

byte  1字节   数值范围: -128 ~ 127     short  2字节   数值范围:32768 ~ 32767      int 4字节  数值范围: -2147483648 ~ 2147483647     long 8字节   数值范围: -2^63 ~ 2^63-1      char  2字节      float4字节     double   8字节            

 

从这张图中可以看出以下结论:

byte型不能自动类型提升到char,char和short直接也不会发生自动类型提升,同时,byte当然可以直接提升到short型。

当对小于int的数据类型(byte, char, short)进行运算时,首先会把这些类型的变量值强制转为int类型进行计算,最后会得到int类型的值。

 

 动手动脑第五项:

public class 枚举类
{
 public static void main(String[] args)
 {
  int X=100;
  int Y=200;
  System.out.println("X+Y="+X+Y);
  System.out.println(X+Y+"=X+Y");
 }
}

第一个因为字符串在前面,而加号把X和Y连接在一起了所以就输出了100200;

第二个因为字符串在后面,而前面的X+Y就是数学上的加法。所以答案是300。

课后实验题:

public class 数学
{
 public static int i;
 public static int n;
 public static int j;
 public static int k;
 public static int t;
 public static char o;
 public static char y;
 static Random a=new Random();
 public static List list;
 public static String shuzu[];
 public static void main(String[] args)
 {
  int l=0;
  Scanner scan=new Scanner(System.in);
  System.out.println("请输入题的数量:");
  System.out.println("请输入数值范围:");
  System.out.println("请输入操作数个数:");
  System.out.println("请选择是否需要乘除法(Y or N):");
  System.out.println("请选择是否需要括号(Y or N):");
     t=scan.nextInt();
  n=scan.nextInt();
  j=scan.nextInt();
     o=scan.next().charAt(0);
     y=scan.next().charAt(0);
     shuzu=new String[t];
  for(int p=1;p<=t;p++)
  {
      list=new ArrayList();
   System.out.print("第"+p+"题:  ");
      shu();
    shuzu[p-1]=" ";
    for(int u=0;u<list.size();u++)
    {
    shuzu[p-1]=shuzu[p-1]+list.get(u);
    }
   chachong(shuzu[p-1],p);
   System.out.println(shuzu[p-1]);
        }
 }
 public static void chachong(String str,int p)
 {
  boolean is=false;
  while(is)
  {
  for(int s=0;s<p-1;s++)
  {
   if(str.equals(shuzu[s]))
   {
    shu();
   }
   else
    k++;
  }
  if(k==p-1)
  {
   is=true;
  }
  }
 }
 public static void shu()
 {
  for(int i=0;i<2*j-1;i++)
  {
   int b=a.nextInt(n)+1;
   if((i+1)%2!=0)
   {
    list.add(b);
   }
   else
   {
    int c=a.nextInt(4)+1;
    if(o=='N')
    {
     if(c==3||c==4)
     {
      c=a.nextInt(2)+1;
     }
    }
    switch(c)
    {
    case 1:list.add('+');break;
    case 2:list.add('-');break;
    case 3:list.add('*');break;
    case 4:list.add('%');break;
    }
   }
  }
  if(y=='Y')
  {
   int v=a.nextInt(2*j-3);
   int g=a.nextInt(2*j+1);
   if((v%2==0&&g%2==0)&&(g-v>=4))
   {
    list.add(v,'(');
    list.add(g,')');
   }
  }
 }
}

 

 

 

 

 

posted @ 2020-09-29 22:05  一条快乐的小鲸鱼  阅读(133)  评论(0编辑  收藏  举报