-------- 现实生活中的 ------------
对象:
生活中:能够用语言描述出来事物。
程序中: 分配在堆上面的一块内存区域。
类: 具有明确的定义的相同特征和行为,功能事物集合
电风扇类: 相同特征,功能
-------- 程序中--------------------
类:把一类生活中具体的事物相同特征,功能/行为抽象为属性和方法过程
语法:
注意: Java中的一个类表示生活中的一类对象
class 类名称 {
// 类的成员
// 属性-> 特征的抽象
// 方法-> 功能/行为的抽象
}
// 手机类:
特征: 颜色,品牌,尺寸。
功能: 打电话,发短信,聊微信。
class Phone {
// 特征->属性(成员变量)
String color; // 颜色
String kind; // 品牌
double size; // 尺寸
// 方法->功能抽象
void call() {}
void sendMs() {}
void chat() {}
}
对象: 分配在堆上面的一块内存区域。
// 生产手机
Phone phone = new Phone();
phone.color = "金黄色";
phone.kind = "苹果黑";
phone.size = 15.5
// 调用提供方法,发送消息。
phone.call();
phone.chat();
phone.sendMs();
类和对象的关系:
类是对象的模板
对象是类的实例
------ 面向对象的特征 --------------
访问修饰符:
private default protected public
同一个类 √ √ √ √
同一个包 × √ √ √
不同包是子类 × × √ √
不同包非子类 × × × √
封装:隐藏对象功能实现的细节。
1、将类中属性私有化
2、提供需要给外部类操作的setter或者getter方法
3、提供外部成员调用方法使用public修饰
继承:子类继承父类中的成员变量。
在子类中使用extends关键字就可以继承父类中所有成员变量
注意: Java中继承只支持单根继承方式
A extends B,C 多继承(错误)
A extends B, A extends C (多重继承)
多态
抽象
接口
package com.oop.demo; public class Phone { private String color; private String kind; private double size; public Phone() { System.out.println("无参构造函数"); } public Phone(int i) { System.out.println("有参构造函数"); } public String getColor() { return color; } public void setColor(String color) { this.color = color; } public String getKind() { return kind; } public void setKind(String kind) { this.kind = kind; } public double getSize() { return size; } public void setSize(double size) { this.size = Math.abs(size); } void call() { System.out.println("打电话"); } void sendMsg() { System.out.println("发短信"); } void chat() { System.out.println("聊微信"); } public static void main(String[] args) { Phone phone = new Phone(); phone.color = "金黄色"; phone.kind = "苹果黑"; phone.size = 15.5; phone.setSize(-15.5); phone.call(); phone.sendMsg(); phone.chat(); System.out.println(phone.size); } }