一、相关概念
-
什么是类
-
类是模子,确定对象将会拥有的特征(属性)和行为(方法)
-
类是对象的类型
-
-
什么是对象;
-
对象是类的实例化表现
-
对象是特定类型的数据
-
-
类和对象的关系;
- 类是抽象的概念,描述了一个模板,它限定了一种类型当中应该拥有什么(属性)和能做什么(方法)。对象是一个实例产生的具体体现,是一个看得见摸得着的具体实例。
-
什么是面向对象;
- 关注对象,从计算机的角度而言可理解为,关注现实生活中存在的事物的各方面的信息,从对象的角度出发,根据事物的特征进行相关的程序设计。
-
属性
-
对象具有的各种静态特征(对象有什么)
- 类的属性是有默认的初始值的 03类属性的默认初始值.png
-
-
方法
- 对象具有的各种动态行为(对象能做什么)
-
关于面向对象的编程
- 根据需求创建类 --> 实例化对象 --> 完成具体的程序逻辑
二、相关编程思想
-
单一职责原则
-
里氏替换原则
-
依赖倒置原则
-
开闭原则
-
迪米特法则
-
接口隔离原则
-
组合/聚合复用原则
三、相关代码演练
-
对象实例化
-
实例化对象的过程可以分为两部分:
-
声明对象(在内存的栈区进行)
-
实例化对象(在内存的堆区进行)
-
-
-
构造方法(构造函数、构造器)
-
构造方法与类名同名且没有返回值
语法格式:
public 构造方法名() { //初始化代码 }
-
只能在对象实例化的时候调用
-
当没有指定构造方法时,系统会自动添加无参的构造方法
-
当有指定构造方法,无论是有参、无参的构造方法,都不会自动添加无参的构造方法
-
一个类中可以有多个构造方法
-
构造方法只能通过 new 关键字来配合使用,或者在构造方法中通过 this关键字 调用同一个类中的其他构造方法,并且这条语句必须放在方法体的第一条。
/** * 宠物猫类 */ public class Cat { //成员属性:昵称、年龄、体重、品种 private String name;//昵称 private int month;//年龄 private double weight;//体重 private String species;//品种 public Cat(){ System.out.println("我是一个无参的构造方法"); } public Cat(String name,int month,double weight,String species) { this();//在构造方法中通过 this关键字 调用同一个类中的其他构造方法,并且这条语句必须放在方法体的第一条。 this.name = name; this.month = month; this.weight = weight; this.species = species; } }
-
- 当一个类中存在有返回值的与类名相同的方法时,此时该方法只是一个普通方法。可以通过实例对象.方法名() 的形式调用。语法上不会报错,但是不建议这么去写。
public class Cat { //成员属性:昵称、年龄、体重、品种 private String name;//昵称 private int month;//年龄 private double weight;//体重 private String species;//品种 //不建议 public void Cat() { System.out.println("我只是一个普通方法"); } }
this 关键字:
- this 表示当前对象。
- 使用场景:
- 调用成员属性,解决成员属性和局部变量同名冲突。
- 调用同一个类中的其他成员方法。
/** * 宠物猫类 */ public class Cat { //成员属性:昵称、年龄、体重、品种 private String name;//昵称 private int month;//年龄 private double weight;//体重 private String species;//品种 public Cat(String name,int month,double weight,String species) { this.name = name; this.month = month; this.weight = weight; this.species = species; } //成员方法:跑动、吃东西 //跑动 public void run(){ eat();//this.eat();也是一样的效果 System.out.println("小猫会跑"); } //吃东西 public void eat() { System.out.println("小猫吃鱼"); } }
-
小结:
-
面向对象
-
关注现实存在的事物的各方面的信息,从对象的角度出发,根据事物的特征进行程序设计;
-
对象:用来描述客观事物的一个实体
-
类:具有相同属性和方法的一组对象的集合
-
语法:
- 类的定义
public class 类名 { //定义属性部分 [访问修饰符]数据类型 属性名; //定义方法部分 [访问修饰符] 返回类型 方法名(参数){ } }
- 创建并引用对象
类名 对象名 = new 构造方法(); 对象名.属性 对象名.方法名()
-
对象的实例化过程可以分为两部分:
-
声明对象
-
实例化对象
如:Cat cat = new Cat();
-
声明对象 :Cat cat
- 声明对象实际上是在内存的栈区开辟了一块空间,此时栈空间的数据是为空的。
-
实例化对象:new Cat()
- new 关键字实际上是在内存的堆区开辟了一块空间;
-
-
声明对象与实例化对象的关联通过赋值符号“=”号来完成。“=”号是将堆区开辟的空间的内存地址传递到栈区的内存空间里。此后,我们就能通过“对象名.”的形式访问对象的成员属性和成员方法了。
-
-
-
构造方法:构造方法是类中一个比较特殊的方法
-
没有返回值;与类名相同;可以指定参数;
-
只能在对象实例化的时候配合 new 关键字调用。
-
一个类可以有多个构造方法——构造方法重载;
-
当没有指定构造方法时,系统会自动添加无参的构造方法;
-
当有指定构造方法,无论是有参、无参的构造方法,都不会自动添加无参的构造方法。
-
-
this 关键字
-
当前对象的默认引用
-
使用场景:
-
调用成员属性,解决成员属性和局部变量同名冲突。
-
调用同一个类中的其他成员方法。
-
调用重载的构造方法,并且该语句必须放在方法体的第一条。
-
-
-
-
网友评论