面向对象编程的特征

Posted by Kuok on October 25, 2021

面向对象的四大特征

  1. 抽象」定义:抽象是将一类对象的共同特征总结出来构造类的过程,包括数据抽象和行为抽象两方面,抽象只关注对象的哪些属性和行为,并不关注这此行为的细节是什么
    • 研究事物的静态特征(属性)
    • 研究事物的动态特征(方法/函数)
    • 形成结果(类,class)
    • 类和对象相互转变(new)
    • 举例说明: 学生有姓名,有年龄,有身份证号,这些都是静态特征,即属性 学生会吃饭,会睡觉,会学习,这些都是动态特征,即行为。 代码实现: Student.java ```java public class Student { //1.1 研究事物的静态特征(属性) String name; int age; String cardNo; //1.2 研究事物的动态特征(方法/函数) /*
    • 吃饭 / void eat(){ System.out.println(“吃饭…..”); } /
    • 睡觉 / void sleep(){ System.out.println(“睡觉…..”); } /
    • 学习 */ void learn(){ System.out.println(“学习…..”); } public static void main(String[] args) { //声明一个学生类型的变量,指向内存当中学生的一个实例(1.3-1.4) Student s1 = new Student(); //类到对象 s1.name = “李四”; s1.age = 23; s1.cardNo = “13012411”; System.out.println(“姓名:”+s1.name+”,年龄:”+s1.age+”,身份证号:”+s1.cardNo); s1.eat(); s1.sleep(); } }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
---
2. 「**封装**」
定义:通常认为封装是把数据和操作数据的方法绑定起来,对数据的访问只能通过已定义的接口.面向对象的本质就是将现实世界描绘成一系列完全自治,封闭的对象,可以说,封装就是隐藏一切可隐藏的东西,只向外界提供最简单的编程接口。封装给对象提供了隐藏内部特性和行为的能力,对象提供一些能这被其它对象访问的方法来改变它内部的数据。
提供构造方法(有了构造方法才能通过new去构建一个对象
- 构造方法必须和类名称一样
- 构造方法不能有返回值)
  空参构造系统默认存在,但是当你手动加入了有参构造,默认的空参构造将不再存在
```java
	//空参构造
	public Student(){ };
	//有参构造
	Student(String name){
		this.name = name;
		System.out.println("初始化成功...");
	}
	//有参构造
	Student(String name,int age,String cardNo){
		this.name = name;
		this.age = age;
		this.cardNo = cardNo;
		System.out.println("初始化成功...");
		***********************
		//有了构造,在主方法中便可以创造对象
		Student s1 = new Student();    空参构造
		Student s2 = new Student("王五");  //有参构造
		Student s3 = new Student("赵六", 22, "13012412");  //有参构造
		
	}
  • 静态块(做的类的初始化的工作,执行在new之前)静态块用于放创建对象前要做的一系列事情,比如说一个学生,首先要被孕育,然后出生…等等
  • 控制访问

  1. 继承」(关键字:extends)

  1. 目的:对父类和方法的复用 继承是从已有类得到继承信息创建新类的过程,继承让变化中的软件系统有了一定的延续性,同时继承也是封装程序中可变因素的重要手段.子类继承父类属性(静态特征)和方法(动态特征),继承必须遵循封装当中的控制访问 访问修饰符决定了是否可以继承

  1. 多态」多态性是指允许相同或不同子类型的对象对同一消息作出不同响应
  • 重载:同一个动作作用在同一个对象上拥有不同的解释 overload 重载又称静态多态,编译时多态

  • 重写:同一个动作作用在不同的对象上拥有不同的解释 override 重写又称动态多态,运行时多态

狭义的多态指重写