009-了解面向对象
Written on: 5月 11, 2021
Title : 009-了解面向对象
link : 009-了解面向对象
009-了解面向对象
目录
- 一、面向对象
- 一、什么是面向对象
- 二、面向对象优点
- 三、面向对象实现一个软件的过程
- 四、面向对象的特征
- 二、类与对象的概念
- 一、什么是类
- 二、什么是对象
- 三、类与对象的关系
- 四、创建对象是JVM的变化
- 三、构造方法
- 一、构造方法的作用
- 二、构造方法的语法结构
一、面向对象
一、什么是面向对象
面向对象就是将现实世界分割成不同的单元,然后每一个单元都实现成对象,然后给一个环境驱动一下,让各个对象之间协作起来形成一个系统;
二、面向对象优点
耦合度低,扩展力强
三、面向对象实现一个软件的过程
分析( A ) --> 设计( D ) --> 编程( P )
- OOA:面向对象分析
- OOD:面向对象设计
- OOP:面向对象编程
四、面向对象的特征
- 封装
- 继承
- 多态
二、类与对象的概念
一、什么是类
类实际在现实世界中是不存在的,是一个抽象的概念,类的本质是现实世界当中某些事物具有的共同特征,将这些共同特征提取出来形成的概念就是一个类,相当于一个模板;
比如说我们定义一个学生的类,此时该类就相当于一个模板,我们就可以通过该类创造出一个个具体的学生对象出来。
类的组成:类 = 属性 + 方法
类的定义方式
[修饰符列表] class 类名 {
//类体 = 属性 + 方法
// 属性在代码上以"变量"的形式存在(描述状态)
// 方法描述动作/行为
}
注意:
修饰符列表可以省略。
属性对应的是"数据",数据在程序中只能放到变量中也就是说:属性其实就是变量。
// 定义一个学生类public class Student { //定义类的属性,也就是学生的共同具有的属性 private int age; //年龄 private String name; //学生姓名 //定义类方法,也就是描述学生所具有的共同行为 public void eat() { System.out.println("学生吃饭"); }}
二、什么是对象
对象:对象就是实际存在的个体
对象的创建
类名 变量名 = new 类名();
// 通过刚刚在上面定义的学生类,我们就可以new出一个学生对象了。import com.domain.User;//如果学生类和该类不在同一个文件中,记得导入学生类所在的包public class TestStudent { public static void main(String[] args) { Student stu = new Student(); }}
三、类与对象的关系
在Java语言中,想要得要"对象",就必须先定义"类","对象"是通过"类"这个模板创造出来的;
- 类:不存在的,人类总结出来的一个模板(这个模板描述的共同特征);
- 对象:实际存在的个体;
- 实例:对象的另外一个名字;
- 实例化:通过类这个模板创建对象的过程;
- 抽象:多个对象具有共同特征,进行思考总结抽取共同特征的过程;
- 类 --【实例化】--> 对象(实例)
- 对象 --【抽象】--> 类
四、创建对象是JVM的变化
实例:Student stu = new Student();
凡是通过 new 运算符创建出来的对象,都是存储在堆内存中,new 运算符的作用就是在堆内存中开辟一块空间,来存储即将创建的对象,如下图:
接下里再通过 = 号将创建出来的对象的对象地址 0x1234 赋给 stu ;
接下来我们就可以通过 stu 来操作刚刚创建的对象中的属性,方法了;
注意事项
* 在创建对象之后,都会在无手动赋值的前提下,都会默认给对象的属性赋初值,赋值的结果有属性的数据类型决定;
* 每执行一个 new 运算符就会创建一个对象,每一个对象在堆内存中的地址都是不一样的;
* 像 stu 这种保存了对象内存地址的变量,有一个特殊的名字:引用;
三、构造方法
一、构造方法的作用
构造方法是一个比较特殊的方法,通过构造方法可以完成对象的创建,以及实例变量的初始化,也就是说,构造方法是用来创建对象,并且同时给对象的属性赋值,实际上我们在通过 new 来创建对象的时候,就是利用类里面的构造方法来创建的,;
注:
* 当一个类没有提供构造方法,系统会默认提供一个无参数的构造方法,这个构造方法被称为缺省构造器,这也是我们没有写构造方法还可以用 new 创建对象的原因;
* 当一个类定义了有参构造方法时,系统将不再默认提供无参构造方法,此时无参构造方法需要自定义,不然会报一下异常;
二、构造方法的语法结构
[修饰符列表] 构造方法名 (形式参数列表){
构造方法体,通常在构造方法体当中给属性赋值,完成属性的初始化。
}
注:
* 构造方法名和类名必需一致
* 构造方法不需要指定返回值类型,也不能写void,写上void就表示普通方法,就不是构造方法了;
// 定义一个学生类public class Student { //定义类的属性,也就是学生的共同具有的属性 private int age; //年龄 private String name; //学生姓名 public Student() {}//定义无参构造方法 public Student(int stuAge, String stuName) {//定义有参构造方法,可以给属性赋值; age = stuAge; name = stuName; }}
// 通过刚刚在上面定义的学生类,我们就可以new出一个学生对象了。import com.domain.User;//如果学生类和该类不在同一个文件中,记得导入学生类所在的包public class TestStudent { public static void main(String[] args) { Student stu1 = new Student();//通过无参构造方法创建对象; Student stu2 = new Student(12,"小明");//通过有参构造方法创建对象,此时该学生对象的名字是小明,年龄12岁; }
相关链接:
链接: 008-Java中方法的使用(进阶篇).
链接: 007-Java中方法的使用(基础篇).
链接: 006-Java的访问权限控制符和包导入机制.
原文转载:http://www.shaoqun.com/a/736777.html
黄远:https://www.ikjzd.com/w/1785
sonar:https://www.ikjzd.com/w/215
目录一、面向对象一、什么是面向对象二、面向对象优点三、面向对象实现一个软件的过程四、面向对象的特征二、类与对象的概念一、什么是类二、什么是对象三、类与对象的关系四、创建对象是JVM的变化三、构造方法一、构造方法的作用二、构造方法的语法结构一、面向对象一、什么是面向对象 面向对象就是将现实世界分割成不同的单元,然后每一个单元都实现成对象,然后给一个环境驱动一下,让各个对象之间协作起来形成一个系统;
dmm杂志:https://www.ikjzd.com/w/2026
stylenanda官网:https://www.ikjzd.com/w/1675.html
usps国际快递查询:https://www.ikjzd.com/w/513
多人p交换口述_摸50岁妇女下面叫爽:http://lady.shaoqun.com/a/273837.html
全世界不止中国人穿秋裤!外国人在速卖通疯狂囤货:https://www.ikjzd.com/home/12082
警惕!细数CPC的那些坑!:https://www.ikjzd.com/home/95808
That's the article 009-了解面向对象
You are now reading the article 009-了解面向对象 with link address https://kanakoroku.blogspot.com/2021/05/009.html