首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

java学习小结(关键字)

2012-12-28 
java学习总结(关键字)关键字1.访问限定符?1.public??1.公共的访问修饰符。??2.它的可见性是在同一个工程(pr

java学习总结(关键字)

关键字

1.访问限定符
?1.public
??1.公共的访问修饰符。
??2.它的可见性是在同一个工程(project)下
??3.用public限定的属性和方法可以被在同一工程下的类调用。
?2.protected
??1.公开性低于public的访问限定符。
??2.它的可见性是在同一个包下(package)。
??3.在同一个包中的类都可以调用protected限定的属性和方法。
?3.默认的
??1.默认的即不加任何访问限定符。
??2.它与protected相似,可见性是在同一包下。
?4.private
??1.私有的访问限定符,私有性最高,可访问级别最低。
??2.用private限定的属性和方法只能在本类中使用。

2.this与super
?1.this
??1.表示本类中的属性或方法。
?

 public class A {   private String name;   //带参数的构造函数   public A(String name) {    this.name = name;   }}

???2.实例化后表示本对象的属性或方法。
??3.调用其他的构造函数
??

public class A {   private String name;   public A(){    //调用下面的构造函数    this("调用带一个参数的构造函数");   }   //带参数的构造函数   public A(String name) {    this.name = name;   }   static void play(){     System.out.println("B在玩!");   }  }

??2.super
??1.调用父类的构造器或者方法。
??2.用super之前必须要继承。
???

public class B extends A{    public B(){     super();    }    static void play(){     System.out.println("B在玩!");    }    public void study(){     System.out.println("B在学习!");    }   }

????类B继承了父类A,在B中调用了父类的构造器。
???注意:
????1.子类继承父类后,在子类默认的构造其中调用了父类的默认构造器。
????2.子类实例化对象实质上是子类调用父类的无参构造器去创建对象。
????3.如果父类中没有无参数构造器,那么程序就会报错。
????4

.public class B extends A{     public B(){      //super();     }    }

?????这些代码与上面的代码是一样的效果,也就是说子类的无参构造器中可以不写super(),因为子类已经默认写了。
3.final
?1.最终的,这是用来定义常量的,也就是说它只能被赋值一次,赋值后就不能再修改它的值。
?2.使用final定义的八种基本数据类型和String的属性必须初始化值。
4.static
?1.静态的,一个类中的某个属性定义成为static的,那么这个属性就存储在静态区域,由该类实例化的所有对象的这个属性都指向静态区域的同一个地址。
?2.某一静态属性的值被修改后,则有这个类实例化的对象的这个静态属性的值都改变了,这个值由最后赋的值决定。
?3.static定义的方法可以由类名直接调用。
??如:2.2.2中的代码,可以直接用类名B调用其中的静态方法play()
???B.play();
?4.注意点:
??实例化的对象去调用该类中的静态方法时,实质上是这个类去调用这个静态方法。
??如:
???

B b = new B();   b.play();//输出结果是"B在玩!"

???上面的b.play()实质上是B.play();
?5.一个对象自动转型为哪种类型,那么用该对象调用某一静态方法时,实质上是用自动转型的类去调用该类中的静态方法。
??如:
???

A b1 = new B();   a.play();//虽然是用B去创建对象,但实质上是调用A中无参构造器去创建对象a的;这里调用的是A类中的play方法,输出结果是"A在玩!"

??6.如果B类继承A类,但是A中没有静态的study方法,那么下面的代码就有错
??

A b2 = new B();  b2.study();//这里将会报错,使用了自动转型后,该对象不能调用子类中有而父类中没有的方法。

?5.java程序执行顺序:
?1.执行主程序前先装载类,装载静(static)态块
?2.最先装载静态属性到静态块中。
?3.在
??

public class D {   static String name = "BBB";   public static void main(String[] args) {    System.out.println("aaa");   }    static{    System.out.println("ddd");   }  }

???该代码运行时输出结果是:
???ddd
???aaa
??在运行该代码前会先装载静态的方法,如本例中装载过程就将"ddd"结果输出了。
??

 static{    System.out.println("ddd");   }

?

热点排行