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 AObject 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 关键字的使用
//eample1this.name=namethis.age=age//emaple2if(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方法