您的位置:首页 > 编程语言 > Java开发

java 入门学习笔记(封装,继承,多态)

2016-08-10 14:51 671 查看
Arrays.sort();//对数字数组排序

声明中,可以包含多个初始化块,当创建类的实例时,就会依次执行这些代码块。如果使用 static 修饰初始化块,就称为静态初始化块。需要特别注意:静态初始化块只在类加载时执行,且只会执行一次,同时静态初始化块只能给静态变量赋值,不能初始化普通的成员变量。

This关键字是代表当前类的对象

封装:

定义:某些信息隐藏在类的内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的访问和操作。

好处:只能通过规定的方法来访问数据;藏类的实例细节,方便修改和实现。

实现:修改属性的可见性,创建getter和setter方法,在方法中添加属性的控制语句。

内部类:定义在另一个类里面的类,

作用:提供了更好的封装,不允许同一个包下的其他类访问该类;内部类可以访问外部类的所有属性和方法,包括私有的属性;内部类实现的功能使用外部类同样可以实现,只是使用内部类更加方便。

外部类不能直接使用内部类的属性和方法,需要创建内部类的实例。

静态内部类不能使用外部类的非静态方法,需要new的方式来使用。

方法内部类只能在方法内部使用。

继承:是类和类的关系,是is a 的关系。Extends关键字

在java中只能单继承,即一个类只能继承自一个类。

要使用父类的属性和方法,则父类的属性和方法必须是公有的

子类对父类的方法重写,在调用的时候首先使用子类重写的方法。重写时类型,方法名,参数类型必须一样。

继承的初始化顺序:先初始化父类再初始化子类。

Final关键字:final修饰类,则该类不能被继承;final修饰方法,则子类不能覆盖父类的final方法。

Super关键字:在子类中可以代表父类,可以直接用super.来获取父类的属性和方法。

子类的构造方法中必须调用父类的构造方法,即uper();,一般是隐式调用父类的午餐构造方法,如果要显式调用父类的构造方法,必须写在子类构造方法的第一行。如果没有显式调用父类的构造方法,而父类没有无参的构造方法,则会报错,因为隐式调用父类构造方法的时候找不到父类的无参构造函数。

Object类:是所有类的父类。

不重写toString方法的话,输出值是包名+哈希地址。

Dog dog = new Dog();

其中dog是对象的引用,new Dog()是对象

类对象和类的对象:

类对象:getClass(),注重的是这个类的属性代码信息。

类的对象:new Class(),注重的是这个类属性的值信息。

多态:对象的多种形态

引用的多态:父类引用指向本身对象,也可以指向子类对象。

方法的多态:创建子类后,调用的方法是子类重写的方法或继承自父类的方法。

抽象类:abstract关键字

应用场景:①在某些情况下,父类只是知道子类需要什么样的方法,但无法准确知道子类怎么实现这些方法。②从具有相同特征的多个类中抽象出一个抽象类,以这个抽象类为模板,约束子类的方法,避免子类的设计的随意性。

接口:接口中都是用常量和公共的抽象方法。接口其实是类的规范。

接口可以多继承。

一个类可以实现一个或多个接口,如果还继承了一个类,继承要放在实现接口前。

异常:阻止当前方法和作用域运行,就是异常

运行时异常:runtimeexception 数组下标越界,空指针异常等,虚拟机抛出异常,基本是代码问题。

检查异常:文件不存在,链接错误等

String 对象创建后则不能被修改,是不可变的,所谓的修改其实是创建了新的对象,所指向的内存空间不同。如果需要一个可以改变的字符串,我们可以使用StringBuffer或者StringBuilder。每次 new 一个字符串就是产生一个新的对象,即便两个字符串的内容相同,使用“=”比较时也为“alse”,如果只需比较内容是否相同,应使用“quals()”方法

java.util.Calendar 类是一个抽象类,可以通过调用 getInstance() 静态方法获取一个 Calendar 对象,此对象已由当前日期时间初始化,即默认代表当前时间。

集合概念:集合是一种工具类,就像容器,存储具有相同属性的对象

集合框架中两类:collection map

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java 继承 多态