JAVA:类的练习题

  1. 判断以下值对比是否相等,并说出原因

    int a , b = 100;
    System.out.println( a == b )
    
    Integer c = 100;
    Integer d = 100;
    System.out.println(c == d )
        
    boolean isReboot1 = true;
    Boolean isReboot2 = new Boolean("1");
    System.out.println( isReboot1 ==  isReboot2 );
    
    boolean isReboot1 = true;
    Boolean isReboot2 = new Boolean(true);
    System.out.println( isReboot1 ==  isReboot2 );
    
    比值相等 int 定义整数
    比值相等 存储整数
    比值不相等 布尔类型,值只能是true和false
    比值相等-
  1. 写出 Object 的常用方法的作用

    方法名 说明
    getClass 返回此Object进行时的类,不可重写
    hashCode 返回对象的哈希码
    equals 判断其他对象与此对象是否相等
    clone 创建并返回此对象的一个副本
    toString 返回对象的字符串表示
    notify 唤醒在此对象监视器上等待的单个线程
    notifyAll 唤醒在此对象监视器上等待的所有线程
    finalize 垃圾回收时调用该方法
    wait 使当前对象的线程等待timeout时长
  2. 写出以下代码的执行顺序

    public class Demo {
     //被static最先执行,都被修饰的从上往下执行
     static {
         count = 20;
     }
      //普通属性或者代码块其次执行,从上往下执行
     {
         size = 20;
         count = 30;
     }
     
     public int size = 10;
     public static int count = 10;
     //3 最后执行构造方法
     public Demo() {
         System.out.println("我是构造器");
         System.out.println( "size = "+ size );
         System.out.println( "count = "+ count );
     }
     
     public static void main(String[] args) {
         new Demo();
     }
    }
    
  1. 方法重载有什么作用 ?判断重载的依据是什么 ?

    不用为了对不同的参数类型或参数个数,而写多个函数,方便了程序员可以根据不同的参数个数,顺序,类型,自动匹配方法,减少写过个函数名或方法名的重复步骤

    判断重载的依据

    1.必须在同一个类里

    2.方法名相同

    3.参数列表不同

    4.与方法返回值和方法修饰符没有任何关系

    5.在使用this调用自身的其他构造方法时,只能作为第一条语句

  2. System.out.println()与System.out.print()区别

    System.out.println() 输出后会换行,System.out.print() 输出不换行
    
  3. 类里面都可以拥有什么元素?

    属性、方法、构造方法、块以及内部类

  4. 一个源文件里面可以写多少个类 ? 哪个类可以使用 public 关键字修饰 ?

    有且只有一个类可以使用public关键字修饰

  5. 一个源文件里面写多个类,编译出来的 class 文件是怎么命名的 ?

    public class StaticTest {
     public static void main(String[] args) {
         Cat cat = null;
         for (int i = 0; i < 5; i++) {
             cat = new Cat();
             new Dog();
         }
         System.out.println(cat.counter);
         System.out.println(Dog.counter);
     }
    }
    
    class Cat {
        public int counter = 0;
        public Cat() {
            counter++;
        }
    }
    
    class Dog {
     public static int counter = 0;
     public Dog() {
         counter++;
     }
    }
    

    一个源文件里面写多个类,编译出来的 class 文件是 StaticTest

  6. 基础类型和包装类型的区别是什么?

    1.包装类型可以为 null,而基本类型不可以
    
    2.包装类型可用于泛型,而基本类型不可以
    
    3.基本类型比包装类型更高效
    
    4.自动装箱和自动拆箱
    
        把基本类型转换成包装类型的过程叫做装箱
    
        反之,把包装类型转换成基本类型的过程叫做拆箱
    
  7. this关键字的作用是什么?

    表示当前对象(谁调用当前方法,this指代的就是谁)当需要给类中的数据进行初始化时,可以通过this来进行赋值
    
  8. String是基础类型么?

    不是......

  9. 内部类有什么?有什么作用 ?

    1.内部类方法可以访问该类定义所在的作用域中的数据,包括私有数据

    2.内部类可以对同一个包中的其他类隐藏起来
    
    3.当想要定义一个回调函数且不想编写大量代码时,使用匿名内部类比较便捷
    
    4.某种意义上另类的多继承
    
  10. 怎么创建并调用一个内部类对象?

    public class Demo01 {
        String name;
        int age;
    
        public void fun(){
            System.out.println("普通成员");
        }
    
        class Inner{
            int sex;
            double high;
    
    
            public void fun01(){
                System.out.println("内部类的普通方法");
            }
        }
    }
    
  11. 定义雇员类,包含雇员的编号、姓名、年龄、职位、部门等信息。

    编号:empid
    姓名:ename
    年龄:age
    职位:类:Position
    部门:类:Dept
    

    职位和部门是2个不同的类,每个类都包含各自的信息。

    职位:编号、职位名称

    编号:pid
    职位:pname
    

    部门:编号、部门名称、上级部门、部门所在地

    编号:dno
    部门名称:dname
    上级部门:Dept
    部门所在地:loc
    
  1. 以下哪个约束符可用于定义成员常量 B

    A.static

    B.final

    C.abstract

    D.const

  1. 看下面代码给出答案 C

    class Test{
      private int m;
      public static void fun() {
        // some code...
      }
    }
    

    如何使成员变量m 被函数fun()直接访问?

    A.将private int m 改为protected int m

    B.将private int m 改为 public int m

    C.将private int m 改为 static int m

    D.将private int m 改为 int m

  1. 以下代码的执行结果是C

    public class Example {
    
        static int i = 1, j = 2;
    
        static {
            display(i);
            i = i + j;
        }
    
        static void display(int n) {
            System.out.println(n);
        }
    
        public static void main(String[] args) {
    
            display(i);
        }
    }
    

    A.1 2

    B.0 1

    C.1 3

    D.1 1

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容