zoukankan      html  css  js  c++  java
  • JAVA(五)程序

    一、编写第一个java程序

    1 public class Hello
    2 {
    3     pubic static void main(String args[])
    4     {
    5         System.out.println("Hello World");    
    6     }    
    7 }
    Hello.java

    二、简单的java范例

     1 public class TestJava
     2 {
     3     public static void main(String[] args) //java操作的一个简单范例,输出和乘方
     4     {
     5         int num = 10;    //定义整型变量
     6         num = 30; //修改变量内容
     7         System.out.println("num的内容是:" + num); //输出变量内容
     8         System.out.println("num * num = " + num * num );    //输出乘方
     9     }
    10 }
    11 /*
    12     程序运行结果:
    13     num的内容是:30
    14     num * num = 900
    15 */
    定义一个简单类
     1 class DataDemo02
     2 {
     3     public static void main(String[] args)
     4     {
     5         int max = Integer.MAX_VALUE;     //得到整型的最大值
     6         System.out.println("整型的最大值:" + max);     //输出最大值
     7         System.out.println("整型的最大值 + 1:" + (max + 1));        //最大值加1
     8         System.out.println("整型的最大值 + 2:" + (max + 2));        //最大值加2
     9     }    
    10 }
    11 /*
    12     输出结果是:
    13     整型的最大值:2147483647
    14     整型的最大值 + 1:-2147483648
    15     整型的最大值 + 2:-2147483647
    16 */
    数据溢出
     1 class DataDemo02
     2 {
     3     public static void main(String[] args)
     4     {
     5         int max = Integer.MAX_VALUE;     //得到整型的最大值
     6         System.out.println("整型的最大值:" + max);     //输出最大值
     7         System.out.println("整型的最大值 + 1:" + (max + 1));        //最大值加1
     8         System.out.println("整型的最大值 + 2:" + (max + 2L));        //最大值加2,变为long型
     9         System.out.println("整型的最大值 + 2:" + ((long)max + 2));        //强制转换为long型
    10     }    
    11 }
    12 /*
    13     输出结果是:
    14     整型的最大值:2147483647
    15     整型的最大值 + 1:-2147483648
    16     整型的最大值 + 2:2147483647
    17     整型的最大值 + 2:2147483647
    18 */
    使用强制类型转换,防止数据溢出
     1 public class DataDemo04
     2 {
     3     public static void main(String[] args)
     4     {
     5         char ch1 = 'a';    //定义字符
     6         char ch2 = 97;    //定义字符,整型转字符
     7         System.out.println("ch1 = " + ch1); //打印输出
     8         System.out.println("ch2 = " + ch2);    //打印输出
     9     }    
    10 }
    11 /*
    12     输出内容:
    13     ch1 = a
    14     ch2 = a
    15 */
    测试字符和整型之间相互转换
     1 public class DataDemo06
     2 {
     3     public static void main(String[] args)
     4     {
     5         float num = 3.0f;        //定义float型变量
     6         System.out.println("两个小数相乘:" + num * num); //计算两数相乘
     7     }    
     8 }
     9 
    10 /*
    11     输出内容:
    12         两个小数相乘:9.0
    13 */
    浮点型数据计算
     1 public class DataDemo07
     2 {
     3     public static void    main(String[] args)
     4     {
     5         boolean flag = true;    //定义布尔型变量
     6         System.out.println("flag = " + flag); //打印输出    
     7     }
     8 }
     9 /*
    10     输出内容:
    11         flag = true
    12 */
    布尔类型的使用
     1 public class DataDemo08
     2 {
     3     public static void main(String[] args)
     4     {
     5         int x = 30;    //定义整型变量
     6         int float = 22.19f; //定义浮点型变量
     7         System.out.println("x/y = " + (x/y)); //除法操作
     8         System.out.println("10/3.5 = " + (10/3.5)); //直接使用常量进行除法
     9         System.out.println("10/3 = " + (10/3));    //直接使用常量进行除法
    10     }    
    11 }
    12 /*
    13     输出内容:
    14         x/y = 1.3519603
    15         10/3.5 = 2.857142857142857
    16         10/3 = 3
    17 */
    数据类型的转换
     1 public class DataDemo09
     2 {
     3     public static void main(String[] args)
     4     {
     5         String str = "lixinghua ";    //定义字符变量
     6         int x = 30;    //定义整型变量
     7         str = str + x;    //改变字符串变量内容
     8         System.out.println("str = " + str);    //打印输出
     9     }    
    10 }
    11 /*
    12     输出内容:
    13         str = lixinghua 30
    14 */
    定义字符串变量
     1 public class DataDemo11
     2 {
     3     public static void main(String[] args)
     4     {
     5         float f = 30.3f; //定义浮点型变量
     6         int x = (int) f;    //强制转换为int型
     7         System.out.println("x = " + x); //输出转型之后的值
     8         System.out.println("10/3 = " + ((float)10/3));    //常量计算使用强制类型转换
     9     }    
    10 }
    11 /*
    12     输出内容:
    13         x = 30
    14         10 / 3 = 3.3333333
    15 */
    数据类型的强制转换
     1 public class ForNestedDemo
     2 {
     3     public static void main(String[] args)
     4     {
     5         for(int i = 1; i <=9; i++)    //第一层循环
     6         {
     7             for(int j = 1; j <= i; j++)    //第二层循环
     8             {
     9                 System.out.println(i + "*" + j + "=" + (i * j) + "	");    
    10             }    
    11             System.out.printf("
    "); //换行
    12         }    
    13     }
    14 }
    九九乘法表
     1 public class ArrayDemo01
     2 {
     3     public static void main(String[] args)
     4     {
     5         int score[] = null;
     6         
     7         score = new int[3];
     8         System.out.println("score[0] = " + score[0]);    
     9         System.out.println("score[1] = " + score[1]);
    10         System.out.println("score[2] = " + score[2]);
    11         for(int x=0; x<3; x++)
    12         {
    13             System.out.println("score["+x+"] = "+score[x]);
    14         }
    15     }    
    16 }
    数组的使用
     1 public class ArrayDemo05
     2 {
     3     public static void main(String[] args)
     4     {
     5         int score[] = {67,89,87,69,90,100,30,50};    //静态初始化数组
     6         int max = 0;    //定义变量保存最大值
     7         int min = 0;    //定义变量保存最小值
     8         max = min = score[0];    //把第一个元素的内容赋值给max和min
     9         
    10         for(int x=0; x<score.length; x++)    //循环求出最大和最小
    11         {
    12             if(score[x]>max)    //依次判断后续元素是否比max大
    13             {
    14                 max = score[x];  span class=  //如果大,则修改max内容
    15             }    
    16             if(score[x]<min)    //一次判断后续元素是否比min小
    17             {
    18                 min = score[x];        //如果小,则修改min内容
    19             }
    20         }    
    21         System.out.println("最高成绩:" + max);    //输出最大值
    22         System.out.println("最低成绩: " + min);    //输出最小值
    23     }    
    24 }
    求数组中的最大和最小值
     1 public class ArrayDemo06
     2 {
     3     public static void main(String[] args)
     4     {
     5         int score[] = {67,89,87,69,90,100,75,90};    // 声明数组
     6         for(int i=1; i<score.length; i++)    //循环判断
     7         {
     8             for(int j=0; j<score.length; j++)    //交换位置
     9                 {
    10                     if(score[i]<score[j])
    11                     {    int temp = score[i];
    12                         score[i] = score[j];
    13                         score[j] = temp;
    14                     }    
    15                 }
    16         }
    17         for(int i=0; i<score.length; i++)    //数组输出
    18              System.out.println(score[i] + "	");
    19     }    
    20 }
    对整形数组按照由小到大的顺序进行排列
     1 class A
     2 {
     3     public  int i = 10;
     4     protected  int j = 20;
     5     
     6     public void e(int i, int j)
     7     {
     8         this.i = i;
     9         this.j = j;
    10     }
    11     public void f()
    12     {
    13         System.out.printf("%d",this.i);    
    14     }    
    15     
    16     public void g()
    17     {
    18         f();
    19         System.out.printf("%d",this.j);    
    20     }
    21 }
    22 
    23 class D
    24 {
    25     public static void main(String[] args)
    26     {
    27         A aa1 = new A();
    28         aa1.e(50,60);
    29         aa1.g();
    30     }    
    31 }
    this的用法
     1 class StaticDemo 
     2 {
     3     static int a = 42;
     4     static int b = 99;
     5     
     6     static void callme() 
     7     {
     8         System.out.println("a = " + a);
     9     }
    10 }
    11 
    12 class StaticByName 
    13 {
    14     public static void main(String args[]) 
    15     {
    16         StaticDemo.callme();
    17         System.out.println("b = " + StaticDemo.b);
    18     }
    19 }
    20 
    21 /*
    22     输出内容是:
    23     a = 42
    24     b = 99
    25     
    26     static成员是不能被其所在class创建的实例访问的。
    27 
    28 如果不加static修饰的成员是对象成员,也就是归每个对象所有的。
    29 
    30 加static修饰的成员是类成员,就是可以由一个类直接调用,为所有对象共有的
    31 
    32 
    33 */
    static的用法
     1 class A
     2  {
     3      public int i = 10;    
     4      private static A aa =new A(); // aa 是否是A对象的属性
     5      
     6      private A()
     7      {
     8      }
     9      public static    A getA()  //static  一定不能省 如果省略就只能通过对象去调用它了
    10      {
    11          return aa;    
    12      }
    13  }
    14  
    15  public class D
    16  {
    17      public static void main(String[] args)
    18      {
    19          A aa1 = A.getA();    
    20          A aa2 = A.getA();
    21          
    22          aa1.i = 99;
    23              System.out.printf("%d
    ",aa2.i);
    24      }    
    25  }
    static_只生成一个对象
     1 class A
     2 {
     3     private int i;
     4     private static int count = 0;
     5     
     6     public A()
     7     {
     8         ++count;    
     9     }
    10     
    11     public A(int i)
    12     {
    13         this.i = i;
    14         ++count;    
    15     }
    16     
    17     public static int getcount()
    18     {
    19         //return 返回A对象的个数
    20         return count;    
    21     }
    22         
    23 }
    24 class D
    25 {
    26     public static void main(String[] args)
    27     {
    28         A aa = new A();
    29         A bb = new A();
    30         System.out.printf("%d",aa.getcount());
    31     }
    32 }
    static_求个数
     1 class Human
     2 {
     3     public String name = "晓得";
     4     public int age = 30;    
     5 }
     6 
     7 class Student extends Human
     8 {
     9     public double score = 66.6;
    10 }
    11 
    12 class Graduate extends Student
    13 {
    14     public int c = 100;    
    15 }
    16 
    17 class E
    18 {
    19     public static void main(String[] args)
    20     {
    21         Graduate gd = new Graduate();
    22          System.out.printf("%s  %d  %f",gd.name,gd.age,gd.score);    
    23     }    
    24 }
    25 /*
    26     一个新类从已有的类那里获得其已有的属性和方法,这中现象叫类的继承
    27     这个新类别称为子类,也叫派生类,已有的哪个类叫做父类,也叫做基类
    28     继承的好处
    29         代码得到极大的重用
    30         形成一种类的层次体系结构,为多态创造条件
    31 */
    继承的由来
     1 class A
     2 {
     3     public int i,j;
     4     
     5     public A(int i,int j)
     6     {
     7         this.i = i;
     8         this.j = j;
     9     }    
    10 }
    11 
    12 class B extends A
    13 {
    14     public int k;
    15     
    16     public B(int i, int j, int k)
    17     {
    18         super(i,j);
    19         this.k = k;    
    20     }        
    21     
    22     public void g()
    23     {
    24         System.out.printf("%d %d %d",i,j,k);    
    25     }
    26 }
    27 
    28 
    29 
    30 class E
    31 {
    32     public static void main(String[] args)
    33     {
    34         B aa = new B(3,3,4);
    35         aa.g();
    36     }    
    37 }
    38 
    39 /*
    40     总结:
    41         1、每个子类构造方法的第一条语句,都是隐含地调用super(),如果父类没有这种形式的
    42            构造函数,那么在编译的时候就会报错。
    43 
    44         2、如果显示的写出super();语句,则必须保证该语句是第一条语句,否则会出错
    45 
    46         3、super();如果不写,则编译器会自动添加,所以此时如果父类没有无参的构造函数就会出错
    47 
    48         4、既可以显示写super();前提是父类必须有无参的构造函数
    49            也可以显示写super(实参); 前提是父类必须有带参的构造函数
    50 
    51         5、调用父类的构造函数的语句必须借助于super,不能直接写父类的类名,这与C++不同,
    52 */
    继承_super()_1
     1 /*
     2     2008年6月6日8:42:07
     3     super的使用
     4 */
     5 
     6 class A
     7 {
     8     A()
     9     {
    10         System.out.println("AAAA");
    11     }
    12 
    13     A(int i)
    14     {
    15     }
    16 }
    17 
    18 class B extends A
    19 {
    20     B()
    21     {
    22         super(2); //如果把该语句注释掉的化,则编译器默认的是自动隐藏调用super(); 但如果父类没有无参的构造函数,则会报错
    23                   //一个子类的构造函数中只能出现一个 super(....)
    24         System.out.println("BBBB");
    25     }
    26 }
    27 
    28 class C extends B
    29 {
    30     C() 
    31     {
    32         //int k = 10; //如果该语句生效 则会出错,因为会导致super()语句不是构造函数的第一条语句
    33         
    34         super();  //35行  每个子类构造方法的第一条语句,都是隐含地调用super(),如果父类没有无参的构造函数,那么在编译的时候就会报错。
    35                   //super();语句可以写,也可以不写,不写的化,系统会自动调用的
    36                   //如果显示写出来的话,编译器要求该语句前面不能加任何语句,也就是说该语句必须保证是第一条语句
    37                   // super()也可以改为super(2); 但前提是父类必须有带一个参数的构造函数,否则也会报错                
    38                   //如果把35行改为 super(2); 编译时就会报错!  
    39 
    40         System.out.println("CCCC");
    41     }
    42 }
    43 
    44 class  TestSuper_1
    45 {
    46     public static void main(String[] args) 
    47     {
    48         C cc = new C();
    49 
    50         //System.out.println("Hello World!");
    51     }
    52 }
    53 /*
    54     在j2sdk1.4.2_16中的运行结果是:
    55 -----------------------
    56 BBBB
    57 CCCC
    58 -----------------------
    59 
    60      总结:
    61         1、每个子类构造方法的第一条语句,都是隐含地调用super(),如果父类没有这种形式的
    62            构造函数,那么在编译的时候就会报错。
    63 
    64         2、如果显示的写出super();语句,则必须保证该语句是第一条语句,否则会出错
    65 
    66         3、super();如果不写,则编译器会自动添加,所以此时如果父类没有无参的构造函数就会出错
    67 
    68         4、既可以显示写super();前提是父类必须有无参的构造函数
    69            也可以显示写super(实参); 前提是父类必须有带参的构造函数
    70 
    71         5、调用父类的构造函数的语句必须借助于super,不能直接写父类的类名,这与C++不同,
    72 */
    继承_super()_2
     1 class Human
     2 {
     3     private String name;
     4     private int age;
     5     
     6     public Human()
     7     {
     8     }
     9     
    10     public Human(String name, int age)
    11     {
    12         this.name = name;
    13         this.age = age;
    14     }
    15     
    16     public void setName(String name)
    17     {
    18         this.name = name;
    19     }
    20     
    21     public void setAge(int age)
    22     {
    23         this.age = age;
    24     }
    25     
    26     public String getInfor()
    27     {
    28         String strInf = name + ": " + age;
    29         return strInf;
    30     }    
    31 }
    32 
    33 class Student extends Human
    34 {
    35     public String school;
    36     
    37     public Student()
    38     {
    39     }
    40     
    41     public Student(String name, int age, String school)
    42     {
    43         super(name, age);
    44 //        this.name = name;  //error 因为name时私有的
    45 //        this.age = age;        //error 同上
    46         this.school = school;
    47     }
    48     
    49     public void setSchool(String school)
    50     {
    51         this.school = school;
    52     }    
    53     
    54     public String getInfor()
    55     {
    56         //String strInf = name + ": " + age + ": " + school;  //error 因为age是私有的
    57         String strInf = super.getInfor() + ": " + school;
    58         return strInf;
    59     }
    60 }
    61 
    62 public class TestStudent1
    63 {
    64     public static void main(String[] args)
    65     {
    66         Student st1 = new Student("张三", 22, "瑞德");
    67         System.out.printf("%s
    ", st1.getInfor());
    68     }
    69 }
    重写方法实例
     1 class A
     2 {
     3     public void f()
     4     {
     5         System.out.printf("AAAA
    ");    
     6     }
     7 }
     8 
     9 class B extends A
    10 {
    11     public void f()
    12     {
    13         System.out.printf("BBBB
    ");
    14     }
    15 }
    16 
    17 class C extends B
    18 {
    19     public void f()
    20     {
    21         System.out.printf("CCCC
    ");    
    22     }    
    23 } 
    24 
    25 public class F
    26 {
    27     public static void g(A aa)
    28     {
    29         aa.f();    
    30     }
    31     public static void main(String[] args)
    32     {
    33         A aa = new A();
    34         B bb = new B();
    35         C cc = new C();
    36         
    37         g(aa);
    38         g(bb);
    39         g(cc);
    40     }    
    41 }
    42 /*
    43     多态注意事项
    44         子类对象可以直接赋给父类引用,但父类对象在任何情况下
    45         都不可以直接赋给子类引用,因为子类是父类的一种,但父类
    46         不是子类的一种,或者讲“子类可以当作父类看待,但父类不可以
    47         当做子类看待”,“狗可以当做动物看待,但动物不可以当做狗来看待”
    48         
    49         通过父类引用只能访问子类从父类继承过来的成员
    50         通过父类引用不能方位子类对象所特有的成员
    51         父类引用永远不可能直接赋给子类引用
    52             只有在父类引用本身指向的就是一个子类对象时,才可以把父类引用
    53             强制转化为子类引用
    54             
    55             其他情况下不允许把父类引用强制转化为子类引用,否则运行时会出错
    56 */
    多态注意事项
     1 interface It
     2 {
     3     public abstract void f();    //不能带有方法体( 抽象类中允许)
     4 }
     5 
     6 interface It2 
     7 {
     8     final int i = 20; // 用final 修饰 表示i 是最后一次赋值
     9 }
    10 
    11 final class A implements It,It2  // 用final修饰 表示该类不能再被继承 implements 表示连接接口
    12 {
    13     
    14     public void f() //一个类要想实现某接口中的方法时,必须得在方法返回值前加public
    15     {
    16         System.out.printf("i = %d",i);    
    17     }    
    18 }
    19 
    20 class F
    21 {
    22     public static void main(String[] args)
    23     {
    24         A aa = new A();
    25         aa.f();    
    26     }    
    27 }
    28 /*
    29     1.  接口中定义的属性必须是public static final的,而接口中定义的方法则必须
    30     是public abstract的,一次这些修饰符可以部分或全部省略。
    31     
    32     2.  接口中定义的属性的值在实现类中不能被更改
    33     
    34     3.  参见TestInter_1.java
    35     
    36     4.  一个类只能实现某个接口, 不能继承某个接口
    37     
    38     5.  但接口可以继承接口
    39     
    40     6.  接口不但可以继承接口,而且可以继承多个接口,即接口允许多继承
    41     
    42     7.  如果一个类只实现一个接口的部分方法,则该类必须的声明为抽象类
    43     
    44     8.  一个类可以在继承一个父类的同时实现一个或多个接口,但extends
    45     关键字必须的在implements之前
    46         TestInter_2.java
    47         
    48     9.  不可以new接口对象,但可以定义一个接口引用类型的变量,并将其指
    49     向实现接口的对象,达到多态的目的!
    50 */
    接口
     1 class A
     2 {
     3     int divide(int a ,int b)
     4     {
     5         int m ;
     6         //System.out.printf("123456");
     7         m = a/b;
     8         //System.out.printf("123456");
     9         return m;    
    10     }
    11 }
    12 
    13 class B
    14 {
    15     public static void main(String[] args)
    16     {
    17         A aa = new A();    
    18         
    19         try
    20         {
    21             aa.divide(6,0);
    22         }
    23         catch(ArithmeticException e) //e用来接收23行抛出的异常对象
    24         {
    25             e.printStackTrace(); //可以简单理解为输出该异常的具体信息
    26             System.out.printf("除零错误,你的程序出错啦!除数不能为零。");
    27         }
    28         System.out.printf("是不是啊");
    29     }    
    30 }
    异常
  • 相关阅读:
    Matplotlib使用笔记
    python之enumerate
    初识matlab
    动态规划的解题思路是如何形成的
    【JVM】体系结构及其细节
    位运算的题目小结
    【JUC】死锁的实现及其定位分析
    【JUC】如何理解线程池?第四种使用线程的方式
    【JUC】实现多线程的第三种方式Callable
    可怜的实验鼠和小猪问题
  • 原文地址:https://www.cnblogs.com/Maxwell599/p/3190146.html
Copyright © 2011-2022 走看看