Java面向对象部分小结
第一天:
1. 了解面向对象和面向过程
2. 对象是什么,静态特性(属性),动态特征(方法)
3. 类和对象的关系
- 类是抽象的,对象是具体的
- 类是具有相同属性和行为(方法)的对象的集合
- 对象是类的一个实例,是一个具体的实体,是由属性和方法构成的。
4. 代码实现了类和对象的关系
只有对象才能调用方法
第二天:
1. 方法:如何去定义方法 - 五要素
-
访问修饰符,返回值类型,方法名,参数列表,方法体
-
有参方法,无参方法,有返回值,无返回值
第三天:
1. 面向对象的特性:封装
- 为什么要使用封装
将类的某些信息隐藏在类内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的操作和访问 - 封装的好处
i. 隐藏了实现的细节,提高安全性和健壮性
ii. 符合java的“高内聚,低耦合”思想
iii. 提高了软件的独立性和可重用性 - 如何实现封装
i. 私有化属性;
ii. 创建公共的getter和setter方法;
iii. 在setter方法中添加控制语句
2. 构造方法
- 作用
创建对象,初始化对象,为对象属性赋值的过程 - 有参构造,无参构造
- this关键字的作用
this-当前对象
3. 成员变量和局部变量
第四天:
1. 构造方法
2. 方法的重载
- 如何判断是否构成重载
同类同名不同参,与其他无关。(不同参:不同的参数列表:个数不同,类型不同,顺序不同)
3. 继承
- 为什么要使用继,承继承的好处
将子类共有的属性和方法抽取到父类中,减少重复代码,实现代码的重用 - 子类继承了父类的哪些内容,不能继承哪些内容
i. private修饰的属性和方法
ii. 子类和父类不再同一个包下,不能继承默认访问权限的成员
iii. 不能继承构造方法 - super的用法
super - 可以调用属性,方法,构造方法,必须要在第一行 - java的类是单继承
4. 静态static - 变量,方法,代码块
执行的时机,类加载的顺序
第五天:
1. object类 – toString(),equals()
2. 方法的重写,为什么需要?遵循的原则-判断标准
- 当父类的方法满足不了子类的需求时
- 重写需要遵循的原则:方法名相同,参数列表相同,返回值类型相同,访问权限的修饰符不能严于父类
- 在子类和父类中存在,同名同参同返回值同访问修饰符的方法(返回值可以是其子类,访问修饰符不能比父类更严格)
3. 重写了equals()
第六天:
1. 多态-java中多态的体现:
父类或接口的引用变量指向了子类或实现类的实例对象
基础:方法的重写
前提:继承关系
注意:如果使用多态的方式创建对象的话,
只能调用父类或子类重写了父类的方法,
子类特有的方法是无法调用的
2. 类型的转换
第七天:
1. 抽象方法
2. 抽象类
3. 接口 – 特殊的抽象类
第八天:
1. 异常
- 常见异常
i. 算术异常:ArithmeticExecption
ii. 空指针异常:NullPointerException
iii. 数组下标越界异常:ArrayIndexOutOfBoundsException
iv. 类型转换异常:ClassCastException
v. 输入类型不匹配:inputMisMatchException - Java异常机制:捕获异常,抛出异常
- 关键字有哪些?
try,catch, finally,throw,throws - 有异常,无异常的执行过程
无异常时:
try {System.out.println("一");System.out.println(2 / 1);System.out.println("二");
} catch (Exception e) {e.printStackTrace();
}System.out.println("四");
- catch中捕获了异常,没有捕获到异常的执行顺序
捕获异常时:
try {System.out.println("一");System.out.println(2/0); //算数异常System.out.println("二"); //永远不会被执行
}catch (ArithmeticException e){System.out.println("ArithmeticException");
}System.out.println("四");
没有捕获到异常时:
try {System.out.println("一");System.out.println(2/0); System.out.println("二");
}catch (NullPointerException e){System.out.println("NullPointerException ");
}System.out.println("四");
- finally关键字的作用
不管有没有异常都会执行的代码
有一种场景是不会执行的,手动关闭程序-System.exit(0);
第九天:
1. 自定义异常 – 如何定义,如何使用
- 1:定义一个类继承Exception或者其子类;
----- class <自定义异常名> extends - 2:编写构造方法(无参和有参);
- 3:在需要的地方调用异常类(使用throw 抛出实例化后的异常)- 在方法的声明中需要声明
下周计划:
- 字符串
- java集合:List,set
- java集合:Map集合
- IO流