java基础 第四章 面向对象
来源:互联网 发布:淘宝v3会员是什么级别 编辑:程序博客网 时间:2024/04/19 01:55
第4章 面向对象
PS:当使用java.lang包中的东西的时候不用导入包,例如String
4.1 面向对象设计原则
1、职责单一
2、OCP原则(o:open c:close p:principle)开闭原则
程序对修改为关闭的,对扩展为开放的;
3、依赖倒置:主要针对父类,可以更加灵活的实现
4.2 面向对象的三大特征:
1、封装
2、继承
3、多态
4、抽象
4.3 面向过程与面向对象?
面向过程:对一个流程的整个体系需要非常的熟悉,了解每一个细节,事必躬亲。
面向对象:只针对自己所负责的那一块区域,熟知这一小块区域内的所有东西,其他的东西只管使用不负责内部的结构亦或是生产。
类:属性和方法
对象
4.4 定义类(是对象的抽象)
class 类名{
//属性和方法.
}
1、考虑有哪些类
2、考虑每个类里面的属性和方法(合适的属性或者方法应该出现在合适类中)
3、类与类的关系
一个文件中可以有多个类,但是只允许有一个是public的,并且该public的类名和文件名一致。
(1)类与类之间的关系
(2)继承
(3)依赖:关系比聚集还要弱 例如:班级和学生
(4)聚合:聚集-关系较弱 例如,球员和教练
组合-关系较强 例如,人的身体各个部位
4.5 创建对象
类名 对象名 = new类名();
可以通过类加载器通过Class文件创建对象
访问对象的属性:对象名.属性
访问对象的方法:对象名.方法名();
类中的static修饰的静态方法是通过类直接进行调用的;
4.6 构造方法
构造方法的特征:
1、方法名和类名相同
2、没有返回类型,连void也没有
3、构造方法是在new对象的时候进行调用
4、当一个类建好之后默认会有一个没有参数的构造方法。
5、当类里面加了一个带参数的构造方法之后,原来没有参数的构造方法会自动消失,如果需要使用没有参数的构造方法,需要特殊声明
4.7 重载(overload) 静态多态
特征:
1、方法名相同
2、参数不同(参数的个数不同或者是参数的类型不同)与返回类型无关。
3、构造方法也可以重载
4.8 this
1、this代表的是当前对象
2、this只能出现在方法中
3、构造方法使用this互相调用的问题:必须放在构造方法的第一行。
4.9 包
1、作用:解决类的重名问题
2、包名的规范:将域名倒着写
类中使用包:package 包名;
包的导入:import 包名.类名;
4.10 继承
1、继承作用
继承划分了类的层次性,父类代表的是更一般、更泛化的类,而子类则是更为具体、更为细化;继承是实现代码重用、扩展软件功能的重要手段,子类中与父类完全相同的属性和方法不必重写,只需写出新增或改写的内容,这就是说子类可以复用父类的内容,不必一切从零开始。
2、继承关系:什么是一种什么,就是包含,例如 A∈B
3、构造方法:
再实例化子类对象的时候,会调用子类的构造方法。
但是在调用子类构造方法的时候,默认会调用父类的没有参数的构造方法,如果父类没有无参的构造方法,那么会报错。
如果非要调用父类有参数的构造方法,那么需要在子类的构造方法中使用super进行显式调用,但是这行代码必须放在第一行。
4、super 在子类中调用父类的方法或者是属性。
4.11 重写(overwrite override) 又叫做覆盖 动态多态
1、目的?
对父类的方法实现不满意,在子类中重写一个方法。
2、重写满足的条件:
A、继承关系
B、方法名相同,参数相同,返回类型一致或者兼容
C、重写方法不能使用比被重写方法更严格的访问控制权限
3、@Override 可以在编译的时间检查是不是重写
4.12 Object类
toString():
输出一个对象的时候,默认会调用toString方法,如果对默认的实现不满意,可以自己去实现toString,这种就叫重写。
equals():判断2对象是否相等。
默认的实现就是引用地址是否相等,如果对默认实现不满意,自己重写该方法。
4.13 访问控制符
private:可以修饰方法,属性,内部类,即为除了外部类的所有
default:默认,表现为什么都不写,可以修饰外部类,内部类,方法,属性。(三通)
protected:同private
public:同default
1、default
2、修饰哪些?
3、修饰了产生的作用
访问权限:
4.14 抽象类
1、来历
2、有抽象方法的类一定是抽象类,抽象类中不一定有抽象方法。
3、抽象类能不能被实例化?
不能,即为不能被new
4、抽象类中有构造方法吗?
有,若是被继承,那么必须要有一个没有参数的构造方法,若是没有无参数的构造方法,那么会报错。
PS:abstract,native方法没有实现。底层一般是c或者c++实现的
4.15 final
1、修饰什么?
可以修饰类,属性和方法(三通)
2、final修饰类有什么限制?修饰属性的限制?修饰方法的限制?
(1)final修饰的类不能被用于继承,刚好与abstract矛盾,即为两者不能同时出现。
(2)若是修饰属性,那么被修饰的属性一旦赋值就不能被更改,但是可以不在声明的时候赋值,可以通过构造方法的方式来赋值。
(3)若是修饰方法,那么该方法不能被重写,但是可以被重载。
4.16 接口
1、接口的作用
为了解决单一继承不能满足需要的问题。
2、定义接口 interface
3、使用接口 implements
4、接口中定义的内容
接口之中可以定义属性,方法。
5、接口与抽象类的区别?
(1)接口中的方法都是抽象的方法,默认为public abstract;在抽象类中的方法可能有抽象的方法,但也可能没有。
(2)接口中没有变量的说法,所有的定义声明都默认为public static final。
(3)接口之中没有构造方法;抽象类中有构造方法,但是两者都不能被实例化,即为都不能new,抽象类的构造方法仅仅是在被继承之后给子类使用。
(4)接口是被实现implements;抽象类是被继承extends。
6、接口与类
类可以且仅仅可以继承一个类,可以实现多个接口;接口只能继承接口,但可以继承多个接口。
思考:抽象类与接口的设计?
抽象类是用于被继承的,两者需要拥有包含关系,例如Animal和Cat;接口是用于被实现的,两者只要有共同点就可以,例如Airport和Bird。
4.17 多态
基本条件:这三个条件缺一不可
(1)需要有继承或者是实现关系
(2)重写
(3)父类引用子类对象
4.18 static
可以修饰除外部类以外的所有。放在方法区的静态池中。static修饰的属性或是方法通过 类名.属性 或者 类名.方法 就可以直接访问,但同时也可以通过产生对象来访问,但被static修饰的某个属性不再属于某个对象,而是所有同类对象公有的。
被static修饰的方法或者是变量被称为 类方法、类变量;其他的无static修饰的被叫做实例方法、实例变量。
- java基础 第四章 面向对象
- 第四章 面向对象基础
- Java笔记 第四章(3) Java面向对象编程基础 第三部分(对象概述)
- Java基础第四篇 面向对象的基本概念(中)
- java笔记 第四章 Java面向对象编程基础第一部分(类和main方法)
- Java笔记 第四章 (4)Java面向对象编程基础 (实战练习)
- 第四章 面向对象
- 黑马程序员Java基础第四章-----面向对象的概念及封装
- 《Java编程思想第四版》笔记---1~9章(1)面向对象基础
- JAVA 面向对象第四天
- Java笔记 第四章(2)Java面向对象编程基础 第二部分(类的成员变量和方法)
- java基础 面向对象
- Java面向对象基础
- java基础-面向对象
- java面向对象基础
- JAVA面向对象基础
- Java面向对象基础
- Java面向对象基础
- Linux—软件包管理
- MySQL优化三(InnoDB优化)
- mysql数据库zip版本的安装
- Spring源码
- 让你秒懂apache禁止网络爬虫采集的方法
- java基础 第四章 面向对象
- 如何在eclipse下查看jdk源码
- 1.1基本内置类型
- servlet+mysql+html用户登录界面
- Redis常用命令-List
- 好的用户界面-界面设计的一些技巧
- Python 爬虫入门(一) Python和常用库的安装
- 基于Spring Boot+jsoup+redis抓取CSDN每周干货的RESTFul爬虫
- Js中Prototype、__proto__、Constructor、Object、Function关系介绍