Java类与对象知识点

1.对象与对象引用的区别是什么?请举例说明。

  创建对象:new FighterPlane();//对象分配在堆heap上

  声明一个对象引用:FighterPlane fp;//fp作为局部变量分配在栈stack上,fp也称为引用变量

  初始化对象引用:fp = new FighterPlane();//fp指向实际对象

  FighterPlne fp = new FighterPlane();//实质是将新创建的FighterPlane对象的首地址赋给对象引用fp,从此fp与该对象关联,通过fp即可操纵该对象。

  老师的形象比喻:遥控器(对象引用)和电视机(对象)的关系。

2.对象作为参数传递的特点是什么?请举例说明。

  对象(引用)作为参数传递,虽然本质上还是值传递,但不像简单类型变量作为参数传递,而是相当于c++中的指针,指向了对象的地址。

 例如:

c5903b5d54cb4fbe9b2c6c5ed610767e.png

 输出: b68fb0f580ad4e81ae259cbadcb653f5.png

 a65281617f9042b4b991c679f47b7962.png

 输出:

4ed33c9fd69149d0af454de1790dd359.png

 

3.对象初始化顺序是怎样的?请举例说明。

  (1)系统会对数据成员进行默认初始化;

  (2)执行数据成员定义处的初始化语句;

  (3)调用构造方法为数据成员指定初值。

  例如:

162e01c97d944314aa3780c346516aaf.jpg

输出:

 1a285a2340a248689bfe9739c65f738f.png

 

4.类的static字段与非static字段的区别是什么?什么场景应该使用static修饰符?请举例说明。

  用 static 修饰符修饰的数据成员是不属于任何一个类的具体对象,而是属于类的静态数据成员。

  它被保存在类的内存区的公共存储单元中,而不是保存在某个对象的内存区中。因此,一个类的任何对象访问它时,存取到的都是相同的数值。

  访问方式为通过类名加点操作符来访问,也可通过对象引用来访问。

《 Java 开发手册》强制使用类名(而不是该类的对象引用)访问静态方法和静态变量。

  static 修饰的方法有如下特点

  (1) static 方法是类方法,但可以被所有对象所访问,引用这个方法时,可以使用对象名做前缀,也可以使用类名做前缀。

 《 Java 开发手册》强制使用类名(而不是该类的对象引用)访问静态方法和静态变量。

  (2) static 方法内部的代码,只能访问类中的 static 属性或方法,不能直接访问类中的非 static 属性或方法(因为那是对象方法),但非 static 方法(对象方法)可以访问 static 数据成员。

  (3)main 方法是特殊的静态方法,是 Application 程序入口点,必须写成 public static void main ( String []args )的形式。

  当类共享数据成员时,可以使用static。

5.Java中final修饰符都有什么作用?请举例说明。

  (1)final修饰属性,则属性为常量;

  例:final int n = 20;

         n = 30;//编译错误

  (2)final修饰方法,则该方法在子类当中不能被覆盖,可防止任何继承类修改此方法,保证了程序的安全性和正确性;

  例:

       class Parent{

           public final void method1(){}//这个方法不能被子类覆盖

       }

       class Child extends Parent{

           public final void method1(){...}//编译错误

       }

  (3)final修饰类,则该类不能被继承。

  例:

       class Parent{

       }

       final class Person extends Parent{

       }//可以继承Parent类

       class Child extends Person{

       }//编译报错,不能继承Person类

6.Java中float[10]arr;语句正确吗?为什么?

  不正确。一维数组声明时不可在方括号内指定数组大小。应为:int [] arr; String [] example; myClass [] mc;此时只是声明,并未创建对象,无法分配内存。

7.Java数组元素类型为基本类型和引用类型时,有什么不同?请举例说明。

  数组元素为基本类型:

     例:int [] arr = new int[10];//在堆上为数组对象分配10个整型元素空间,每个元素初始化为默认值0

  数组元素为引用类型:

     例:String [] example = new String [10];//对象引用数组

     产生一个具有10个单元的数组对象,每个单元存放的是1个String对象的引用,所有单元的初值为默认值null,此时并未创建具体的String对象。

a34ad07ff43f461fa724e72a6e9b767f.jpg

 e4f5d15f7e4f46ec8e5ab078b73bcab4.jpg

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值