Java从入门到精通 第14章 关于类的专题研究

14.1众类鼻祖——Object类

Object类中常用的方法及操作功能

14.1.1 取得对象信息:toString()

System.out.println(p)//直接输出对象
System.out.println(p.toString)//二者的输出结果一样
//Persion@1db9742
//覆写Object类的方法
class Person extends Object{
	String name="teenway";
	int Num=1009;
	public String toString(){
		return "I am "+this.name+", Num:"+this.Num;
	}
}

class Test{
	public static void main(String[] args){
		Person p=new Person();
		System.out.println(p);
	}
}

14.1.2对象相等判断方法:eqauls()

System.out.println(p1.equals(p2)?"同一个人":"不是同一个人");
//实际上是比价两个对象的地址,会判定为不同的人
//如果要比较需要覆写Object类的equals方法

14.1.3 对象签名 hashCode()

//书里讲的不是很明白,自己去查

14.1.4 使用Object接收任意引用数据类型对象

//使用Object接收数组
int temp[]={1,3,5,3,6};
Object obj=temp;
if o instanceof int[]
  int x[]=(int[])o;
//虽然Object类和数组之间没有任何关系,但是数组是引用类型,所以可以用Object接收
//接口和Object更不会有任何关系

//因为接口本身不可能去继承任何一个类,可是在Java设计的时候由于许多地方都需要
//接口的支持,所以Object依然可以接收接口类型
A a=new B();//class B implements interface A
Object obj=a;
A x=(A)obj;

14.2内部类

14.2.1 内部类的基本定义

内部类的作用:
(1)提供了更好的封装,可以把内部隐藏在外部之内,不允许同一个包的其他类访问该类
(2)内部类成员可以直接访问外部类的私有数据,因为内部类被当成其外部类成员,同一个类的成员之间可以相互访问。但外部类不能访问内部类的实现细节,例如内部类的成员变量
(3)匿名内部类适用于创建哪些仅需一次的类

//内部类的使用
Outer outer=new Outer();
outer.inst();

14.2.2 使用static定义的内部类就是外部类

//静态成员不能访问非静态成员
//静态类内部类不能访问外部类的实例成员,只能访问外部类的类成员

14.2.3 在方法中定义内部类

14.3匿名内部类

14.4 匿名对象

//匿名对象的使用
new Persioin.talk

14.5 this 关键字的使用

//eample1
this.name=name
this.age=age

//emaple2
if(this.name.equals(p.name)&&(this.age.==p.age)

//emaple3
//调用本类无参构造方法
this();

14.6 static关键字的作用

14.6.1 使用static定义属性

//用static修饰的属性是公共属性
String name;
static String city="中国";
int age;

Persion p1,p2,p3;
p1.city="美国";
//则所有的人都来自美国了,不需要一个一个的修改

14.6.2 使用static定义方法

//使用static定义的方法可以由类名称直接调用
public static void setCity(String c)
Person.setCity

14.6.3 static main方法

由于虚拟机需要调用main()方法,所以该方法的权限必须是public,
又因为Java虚拟机在执行main()方法时不必创建对象,所以该方法必须是static的,该接收一个String类型的数组参数,该数组中保存执行Java命令时传递所运行的类的参数

14.6.2 static应用——static代码块及静态导入

//static代码块经常用来初始化类属性,只执行一次,优先于static方法

14.7 final关键字的作用

14.8 instanceof关键字的作用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值