Java心得16

    今天学习了多态,感觉好复杂。。。

1、访问修饰符有哪些?各自的作用范围是什么?
     public:该类和非该类均可访问。
     private:只有在本类中访问。
     protected:本包中的类和不同包的子类可以访问。
     默认:通报可以访问。
2、什么是封装?封装有什么特点?
     封装:按照信息隐藏的原则,将信息组织在一起。
     特点:1)信息集合   2)信息隐藏
3、私有属性(private)加get、set方法和公有属性有什么区别?
     1)私有属性(private)加get、set方法可以通过删除get/set方     法     ,将属性做成只读或只写属性,但公有属性不行。
     2)私有属性在设置属性值时,可以在set方法中加入属性有效     性的验证,从而避免属性赋值为无效值,但公有属性不行。
4、静态块在什么时候执行?执行几次?实例化块什么执行?
     静态块在类加载时执行,只执行一次。
     实例化块,每产生一个对象执行一次,在super()之后执行。
5、什么是内部类?内部类产生的class文件命名规则是怎样的?
     内部类:在一个类中再定义一个类,就叫内部类。
     命名规则:外部类$内部类.class。
6、什么是重写?子类重写父类的方法有什么要求?
     重写:重写发生在子类和父类之间,子类的方法和父类相同,     参数列表相同,返回类型也相同。
     要求:子类重写父类的方法,要求子类方法的访问修饰符要大     于或等于父类的访问修饰符。
7、什么是多态?
     多态:允许一个父类变量引用子类的对象,允许一个接口类型     变量引用实现类对象,反过来却不行。
8、说代码执行结果
class  Father{   
public  Father(){
System.out.println("father"); 
}
}
class Child extends Father{
static{
System.out.println("static");
}
{
System.out.println("object");
}
public Child(){
System.out.println("child"); 
}
}
class Test{
public static void main(String [] args){
Child c = new Child();
Child d = new Child();
}
}


   执行结果:static  father  object  child  father  object  child
9、class Super{   
       protected float getNum(){return 3.0f;} 
   } 


  public class Sub extends Super{ 
       //Here
  }
下面哪些代码可放在Here处

a) float getNum(){return 4.0f;} 
b) public void getNum(){}  
c) private void getNum(double d){} 
d) public double Getnum(){return 4.0d;} 
e) public float getNum(){return 9;}  


a)  e)
10、有一个文件S.java。  
  public class S { 
       
  }


class  A{
public class B{

}
}


当编译S.java时,会产生几个class文件,分别是什么?
     三个,分别是:S.class   ,  A.class  ,  A$B.class


11、有这样两个类
class A{
public void getX(int x){
System.out.println("aaa");
}
}
class B extends A{
public void getX(int x,int y){
System.out.println("bbb");
}
}
class Test{
public static void main(String[] args){
B b = new B();
b.getX(1);
}
}
当执行Test时,输出什么结果。
     输出结果:aaa

你可能感兴趣的:(心得)