黑马程序员技术交流社区

标题: 代码块的执行顺序-理解 [打印本页]

作者: Ethan丶    时间: 2015-9-16 11:24
标题: 代码块的执行顺序-理解
本帖最后由 Ethan丶 于 2015-9-16 11:26 编辑
  1. class Code {
  2.         static {
  3.                 int a = 1000;
  4.                 System.out.println(a);
  5.         }

  6.         //构造代码块
  7.         {
  8.                 int x = 100;
  9.                 System.out.println(x);
  10.         }
  11.        
  12.         //构造方法
  13.         public Code(){
  14.                 System.out.println("code");
  15.         }
  16.        
  17.         //构造方法
  18.         public Code(int a){
  19.                 System.out.println("code");
  20.         }
  21.        
  22.         //构造代码块
  23.         {
  24.                 int y = 200;
  25.                 System.out.println(y);
  26.         }
  27.        
  28.         //静态代码块
  29.         static {
  30.                 int b = 2000;
  31.                 System.out.println(b);
  32.         }
  33. }

  34. class CodeDemo {
  35.         public static void main(String[] args) {
  36.                 //局部代码块
  37.                 {
  38.                         int x = 10;
  39.                         System.out.println(x);
  40.                 }

  41.                 //System.out.println(x);
  42.                 {
  43.                         int y = 20;
  44.                         System.out.println(y);
  45.                 }
  46.                 System.out.println("---------------");
  47.                
  48.                 Code c = new Code();       
  49.                 System.out.println("---------------");
  50.                 Code c2 = new Code();
  51.         }
  52. }
复制代码

代码块  { 分为 }
局部代码块;局部限定
构造代码块:{ } 成员位置  对象初始化
静态代码块:static  成员位置  类初始化


执行顺序: 静态代码块》构造代码块》构造方法
tips:静态代码块 只在第一次执行并只执行一次。


作者: Ethan丶    时间: 2015-9-16 12:51
this 访问本类的成员,super访问父类的成员
子类构造方法执行前先执行父类的午餐构造方法
子类中一定要有一个去访问父类的构造方法,否则父类数据没有初始化。显示调用

super.方法名(参数) 继承的“加功能”应用
子类重写父类方法时,访问权限不能更低

public protected default private

方法重写(Override)能改变返回值类型,方法重载(Overload)(参数列表不同)


作者: 天涯莫名    时间: 2015-9-16 23:30
路过,顶一下
作者: 笑笑精灵    时间: 2015-9-16 23:36
看过,赞一下。
作者: Ethan丶    时间: 2015-9-17 08:47
本帖最后由 Ethan丶 于 2015-9-17 08:52 编辑

复习一下:
匿名对象anonymous: new  Student();
        (1)匿名对象就是没有名字的对象。是对象的一种简写形式。
        (2)应用场景
                A:只调用一次类中的方法。
                B:可以作为实际参数在方法传递中使用
作者: Ethan丶    时间: 2015-9-17 08:52
解析:               
                        public static void main(String[] args)
                        public:公共的意思,是最大权限修饰符。
                        static:由于jvm调用main方法的时候,没有创建对象。
                               只能通过类名调用。所以,main必须用static修饰。
                        void:由于main方法是被jvm调用,不需要返回值。用void修饰。
                        main:所以jvm采用了这个名字。main是程序的入口。
                        String[]:字符串数组
                        args:数组名
作者: Ethan丶    时间: 2015-9-17 08:58
回忆起来 之前学过的数组输出方法, 记住为好
  1.         //数组输出方法
  2.         public static void printArrays(int[] arrays){
  3.                 System.out.print("[");
  4.                 for(int i = 0;i<arrays.length;i++){
  5.                         if(i!=arrays.length-1){
  6.                                 System.out.print(arrays[i]+",");
  7.                         }else{
  8.                                 System.out.println(arrays[i]+"]");
  9.                         }
  10.                 }
  11.         }
复制代码

作者: cloud1991    时间: 2015-9-17 09:08
总结的不错,赞一个
作者: SuperApollo    时间: 2015-9-17 09:11
不错哦,善于总结




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2