前言:
首先我们来介绍以下面向对象的特点:
面向对象程序设计,我们关心的主要是对象,与面向切面程序设计的不同之处就是,我们自身不需要去"干活",而是将"活"委托给对象。
Java正是这一种语言,这将降低了我们的学习难度。
面向对象的三大特征
- 继承
- 封装
- 多态
一、类
简述:
类是构造对象的蓝图或者所是模板。例如:Person类 包含了人的相同属性–姓名、年龄、身份证等等等。
类构造对象的过程就称为创建类的实例 也就是我们所说的对象
类与类之间的关系:
- 依赖 : 这是一种常见的关系,例如:某一个对象需要依赖另一个对象才能完成业务逻辑的整体开发,软件工程的术语称为耦合
- 聚合 : 这种关系也很好理解(has - a),例如:一个Order(订单)对象包含一个Item(一种商品)对象
- 继承 : A继承B – A将继承B中的属性和行为,并且还能扩展自身的行为。
类的定义格式:
修饰符 class 类名{}
注意:类的首字母必须大写,修饰符我们用public修饰。
类的成分:
- 成员变量(属性) : Field 用于描述类和对象的属性
- 成员方法 : Method 用于描述对象的行为
- 构造方法 : Constructor 用于初始化类并返回一个对象引用
- 代码块
①静态代码块
②实例代码块- 内部类
二、构造器
构造器的定义方式:
修饰符 与类名一致(){
}
扫描二维码关注公众号,回复: 14410361 查看本文章作用 : 初始化一个类的对象并返回引用
构造方法初始化对象的格式:
类名 自定义对象名 = new 构造器();
注意:
一个类默认拥有一个无参构造,不写也存在,但是如果一个类写了一个带参数构造方法,
那么默认的无参构造就会被覆盖,所以我们应该手写无参构造。
三、封装
概念:
封装又可以称为数据隐藏。
从现象来看,就是将数据和行为隐藏在一个包中,并对对象的使用者进行隐藏具体的实现方式。
对象中的属性称为实例属性,操作数据的行为称为实例方法。
实现封装的过程就在于,适当隐藏,合理暴露,也就是说不能让其他类直接访问属性。只能通过对象的方法与之进行交互。
这就让我们的开发者更加关注于对象,而不是类本身。
四、对象
对象的三个特征
- 行为:也就是说可以操作对象完成对应的操作
- 状态:当调用方法时,对象会如何响应。
- 标识: 用于区分具有相同行为但状态不一样的对象
①Student类
public class Student {
//成员属性
private int id;
private String name;
private String sex;
//无参构造
public Student() {
System.out.println("这是无参构造方法");
}
//带参构造
public Student(int id, String name, String sex) {
this.id = id;
this.name = name;
this.sex = sex;
}
//get set方法 初学者建议手写
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
//写作业方法
public void writer(){
System.out.println(this.name + "写作业");
}
//toString() 显示我们对象属性的输出格式
@Override
public String toString() {
return "Student{" +
"id=" + id +
", name='" + name + '\'' +
", sex='" + sex + '\'' +
'}';
}
}
②测试学生类实例化
public class TestStudent {
public static void main(String[] args) {
//无参构造初始化对象
Student s1 = new Student();
System.out.println(s1);
//带参构造初始化对象
Student s2 = new Student(1,"张三","男");
System.out.println(s2);
}
}
五、this
this关键字
作用:
- this代表了当前对象的引用
- this关键字可以用在实例方法和构造器中
- this用在方法中,谁调用这个方法,this就代表谁
- this用在构造方法中,代表了构造方法正在初始化的那个对象的引用
public class TestStudent { public static void main(String[] args) { //1.创建对象 //1.1无参构造初始化对象 Student s1 = new Student(); //通过set方法来赋值 s1.setId(1); s1.setName("张三"); s1.setSex("男"); System.out.println(s1); //1.2带参构造初始化对象 Student s2 = new Student(2,"李四","男"); System.out.println(s2); //对象调用方法 通过 对象名称.方法名() ——测试this关键字的引用问题 s1.writer(); s2.writer(); } }