JAVA基础语法05
笔记 Java面向对象
类和对象的关系
-
类
- 抽象的概念
- 模板
-
对象
- 一个你能够看得到、摸得着的具体实体
-
包的命名 一般是域名倒序
-
单一职责原则
- 单一职责原则,也称为单一功能原则
- 英文Single Responsibility Principle 缩写SRP 是面向对象设计中的一个重要原则
- 单一职责原则告诉我们:一个类不能太“累”!在软件系统中,一个类(大到模块,小到方法)承担的职责越多,它被复用的
可能性就越小,而且一个类承担的职责过多,就相当于将这些职责耦合在一起,当其中一个职责变化时,可能会影响其他职
责的运作,因此要将这些职责进行分离,将不同的职责封装在不同的类中,即将不同的变化原因封装在不同的类中,如果多
个职责总是同时发生改变则可将它们封装在同一类中。
之所以会出现单一职责原则就是因为在软件设计时会出现以下类似场景:T负责两个不同的职责:职责 P1,职责 P2。当由
于职责 P1 需求发生改变而需要修改类 T 时,有可能会导致原本运行正常的职责P2 功能发生故障。也就是说职责 P1 和 P2
被耦合在了一起。
解决办法:遵守单一职责原则,将不同的职责封装到不同的类或模块中。分别建立两个类 T1、T2,使 T1 完成职责 P1 功
能,T2 完成职责 P2 功能。这样,当修改类 T1 时,不会使职责 P2 发生故障风险;同理,当修改 T2 时,也不会使职责 P1
发生故障风险。
-
类间如何识别
先在本类寻找,在找本包类,在其他包。
-
cat.java
package com.demo3;
/**
* 宠物猫类
*
* @author zzh
*/
public class cat {
// 属性: 名字,年龄,体重,品种
String name;
int month;
double weight;
String species;
// 方法:跑动,吃东西
//构造方法
public cat(){
}
public void run() {
System.out.println("cat run");
}
// 函数重载
public void run(String name) {
System.out.println(name + " run");
}
public void eat() {
System.out.println("cat eat fish");
}
}
- Test
package com.demo3;
public class Test {
public static void main(String[] args) {
// 对象实例化 属性默认初始化 String null , int 0 ,double 0.0
cat one = new cat();
// 调用方法
one.run();
one.run("tom");
one.eat();
// 属性赋值
one.name = "tom";
phone phone = new phone();
phone.name = "hello";
phone phone1 = phone; // phone1 指向了 phone的堆地址,并没有创建新空间对象。
phone1.name = "words";
System.out.println(phone.name);
}
}
class phone {
String name;
}
- 构造方法
- 构造方法与类同名且没有返回值
- 构造方法的语句格式
- 只能在对象实例化的时候调用
public 构造方法名(){
// 初始化代码
}
- 当没有指定构造方法时,系统会自动添加无参的构造方法
- 当有指定构造方法,无论是有参、无参的构造方法,都不会自动添加无参的构造方法
- 一个类中可以有多个构造方法
- this (用于解决局部优先)