-------- 现实生活中的 ------------
对象: 生活中:能够用语言描述出来事物。 程序中: 分配在堆上面的一块内存区域。类: 具有明确的定义的相同特征和行为,功能事物集合
电风扇类: 相同特征,功能-------- 程序中--------------------类:把一类生活中具体的事物相同特征,功能/行为抽象为属性和方法过程语法:注意: 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); }}