java--面向对象杂谈

本文主要探讨Java的面向对象特性,包括this在构造器的应用、super的使用、String与Integer的Comparable实现、instanceof操作符、初始化块的作用、自动装箱拆箱、常量池的概念以及对象的toString()方法等关键知识点。
摘要由CSDN通过智能技术生成

1.this在构造器中的应用:在不同的构造器中使用到相同的其它构造器内所有的因素,可以通过this调用。(原因:便于维护)

public Apple(String name,String color){
this.name=name;
this.color=color;
public Apple(String name,String color,double weight){
this(name,color);
this.weight=weight;
}

2.重载:同一个类中的带有不同参的构造器。重写:子类重写父类相同的方法。重写方法时要求尊循“两同两小一大”,两同:方法名,形参列表相同。两小:子类方法返回值类型&抛出异常类应该比父类更小或相等。一大:子类方法访问权限比父类大或相等。

注意:父类方法有private访问权限的话,在子类的一切行为都不算重写,只能算定义一个新方法。

3.super作用:调用被子类隐藏的实例变量或方法,也可以用来调用父类构造器。

注意:如果子类中没有super,this调用的话系统将隐式调用父类无参构造器。

4.String和Integer均实现Comparable接口,并且重写了方法。因此它们能排序。

5.用instanceof用于判断前面对象是不是后面的类,或者子类(判断继承关系),实现的类的实例。

6.初始化块的使用:先定义先执行,比类的无参构造方法先执行。

应用:当构造器中有多个重复相同初始化参数时可以放在初始化块里,减少冗余。

7.包装类和对应基本类型变量jdk1.5后便可以直接赋值进行自动装箱和拆箱。

注意:当用字符串创建Boolean对象时,如果是传入的是除true(不区分大小写)之外的字符串,则会创建false对应的Boolean对象。

8. System.out.println("jhdhhd"+(5+3));先执行括号内运算。

9.将实例对象直接输出时即:Person p=new Person() System.out.print(p)

相当于System.out.print(p.toString()),输出的是“自我描述信息”,toString()方法是所有类都有的,因此要自定义输出对象描述信息,需要在类里面重写toString()方法。

10.常量池:专门用来管理在编译期被确定并保存在已编译的.class文件中的一些数据。它包括了相关类,方法,接口中的常量,还包括字符串常量。

11.即使实例为null也可以访问其所属类的类成员。

12.valueOf(参数),传递进参数之后就会自动在缓存池里缓存该参数的String对象,当再次传进相同的实例的时候,valueOf方法先遍历缓存池判断是否已经存在实例,若没有则将新的实例存进去,当缓存的实例达到极限时缓存池将从第一个开始删除并以此类推,例如Integer类只能判断-128-127个数字。但是如果是使用new直接创建新的实例的时候直接用==比较是一定不会相等的。

Integer int1=new Integer(6);
Integer int2=Integer.valueOf(6);
Integer int3=Integer.valueOf(6);
//输出false
System.out.println(int1==int2);
//输出true
System.out.println(int2==int3);
Integer int4=IntegerOf(200);
Integer int5=IntegerOf(200);
//输出false
System.out.prrintln(int4==int5);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值