这周是我在千锋学习的第四周了,收获了许多知识。
这周依旧是网上授课的模式上课,网上授课画面声音都很清晰,效果很好。
这周我们主要学习了java中的接口,抽象类,静态,final修饰符的知识,还有四大内部类:成员内部类,局部内部类,静态内部类,匿名内部类。还学习了object类的知识。这周学的很多很重要,需要自己去进行大量的练习去掌握这些知识。
一、内部类:
1.概念:在一个类的内部,再定义一个完整的类。
2.特点:
I.编译之后可生成独立的字节码文件。
II.内部类可直接访问外部类的私有成员,而不破坏封装。
III.可为外部类提供必要的内部功能组件。
3.分类:
I.成员:
1).在类的内部定义,与实例变量、实例方法同级别的类。
2).属于外部类的一个实例部分,创建内部类对象,必须依赖外部类对象。
3).Outer out = new Outer();
Outer.Inner in = out.new Inner();
4).当外部类、内部类存在重名属性时,有限访问内部类属性,通过外部类类名.this.外部类实例属性
5).成员内部类不能定义静态成员。
II.静态:
1).不依赖外部类对象,可直接创建或通过类名访问,也可声明静态成员。
2).Outer.Inner.静态成员
Outer.Inner in = new Outer.Inner();
III.局部:
1).定义在外部类的方法中,作用范围和创建对象的范围仅限当前方法中。
2).局部内部类访问外部类局部变量时,因无法保障变量的生命周期与自身相同,所以修饰为final。
3).隐藏类的信息、限制类的使用范围。
IV.匿名:
1).没有类名的局部内部类
2).必须继承一个父类或实现一个接口。
3).定义类、实现类、创建对象的语法合并,只能创建一个该类的对象。
4).优:减少代码量,书写的思路流畅。
5).劣:可读性较差。
API:Application Programming Interface//应用程序编程入口
二、Object类:
I.Object作为方法的形参, Object作为方法的返回值,作为class直接或间接的父类
II.将equals()覆盖判断地址中的(内容)
III.getClass()判断数组中两个对象的真实类型是否相同
IV.hashCode()哈希码是对象的整数表现形式,也是“数字型”的名字
V.toString()获得对象的字符串表现形式,打印对象:实质打印的就是该对象的toString()的结果
VI.Integer.toHexString()16进制的哈希码(哈希码是10进制数,需要转换成16进制)
VII.toString()覆盖父类提供的方法无法满足子类需求时,可在子类中声明和父类完全相同的方法进行覆盖。