zoukankan      html  css  js  c++  java
  • 2016.9.13小结

    1、访问修饰符有哪些?各自的作用范围是什么?
    private:只有该类可以访问。
    public:该类或非该类均可以访问。
    protect:该类及其子类的成员可以访问,同一个包中的类也可以访问。
    默认:相同数据包中的类可以访问。
    2、什么是封装?封装有什么特点?
    封装:按照信息隐藏的原则,将数据组织在一起。
    特点:1、信息隐藏 2、信息集合
    3、私有属性(private)加get、set方法和公有属性有什么区别?
    1、私有属性不能直接访问,只有通过公有的get方法和set方法取值或者设值。一旦删掉get/set方法,可以直接将该属性做成只读或只写属性,而公有属性做不到。
    2、可以通过修改器在设置属性时,做数据合法性的验证,但公有属性做不到。
    4、静态块在什么时候执行?执行几次?
    静态块在类加载时执行,也就是在产生对象之前产生对象之前执行。只执行一次
    5、什么是内部类?内部类产生的class文件命名规则是怎样的?
    内部类:在一个类中再定义一个类。内部类相当于外部类的属性,内部类的产生必须依赖于外部类的对象
    内部类产生的class文件命名规则:外部类类名$内部类名.class
    6、什么是多态?
    多态:允许一个父类变量引用子类对象,允许一个接口类型变量引用实现类对象,反过来却不行。
    7、说出代码执行结果 XXX yyy
    public class X{
    public X(){
    System.out.println("XXX");
    }
    }

    class Y extends X{
    public Y(){
    System.out.println("yyy");
    }

    public static void main(String[] aa){
    Y y = new Y();
    }
    }

    8、说代码执行结果 static father child father child
    class Father{
    public Father(){
    System.out.println("father");
    }
    }
    class Child extends Father{
    static{
    System.out.println("static");
    }
    public Child(){
    System.out.println("child");
    }
    }
    class Test{
    public static void main(String [] args){
    Child c = new Child();
    Child d = new Child();
    }
    }


    9、class Super{
    protected float getNum(){return 3.0f;}
    }


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

    a) float getNum(){return 4.0f;} //默认类型范围小于protected
    b) public void getNum(){} //不可以放入,既不是重写又不是重载
    c) private void getNum(double d){} //重载
    d) public double Getnum(){return 4.0d;} //字母大写
    e) public float getNum(){return 9;} //重写


    10、有一个文件S.java。
    public class S {

    }

    class A{
    public class B{

    }
    }

    当编译S.java时,会产生几个class文件,分别是什么?
    3个 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

    12、class Base{}
    public class Child extends Base{
    static byte b1=2;
    static byte b2=2;
    static int i = -1;
    static double d = 10.1;

    public static void main(String argv[]){
    Child m = new Child();
    Base b = new Base();

    //Here
    }
    }
    下面哪些代码,当被插入//here所指地方时,编译和运行不会出错 1) 3)
    1) b=m;
    2) m=b;
    3) d =i;
    4) b1 =b1+b2;//两个整数相加,结果至少是int类型,但是 b1+=b2 是可以的等价于b1=(byte)(b1+b2)

  • 相关阅读:
    最全前端开发书籍整理推荐
    一个命令搞定MP4文件转m3u8文件
    Git基本使用方法
    How to write class diagram
    OpenSSL Installation On Windows
    单点登录(Single Sign On)解决方案
    利用 jQuery 克隆对象
    java中自定义一个异常类 在某些情况抛出自定的异常 ----------阻断程序
    Java 如何抛出异常、自定义异常
    flowable流程启动时监听器
  • 原文地址:https://www.cnblogs.com/zzyytt/p/5890426.html
Copyright © 2011-2022 走看看