面向对象的概念:
Java是一种面向对象的语言,他只在乎结果。例:我想吃外卖,我不管那个大厨炒的,不管是哪个外卖员送的,只要能到我手中就行。所以在Java中会创建一个个的对象。
对象的创建过程:
1 在栈内存中开辟一块空间,存放引用类型变量p,并把p压入栈底(栈内存是先进后出)
2 在堆内存中开辟一块空间,存放该类的对象
3 完成对象的初始化,并赋予默认值
4 给初始化完毕的对象赋予唯一的地址值
5把地址值交给p来保存
以下是最基础的对象创建:
public class TestCreateClass {
public static void main(String[] args) {
//通过new关键字创建对应类的对象
Phone p=new Phone();
//通过创建好的对象使用类中的对象
p.call();
p.message();
Phone p2=new Phone();
System.out.println(p2);
//赋值并查看
p2.price=2222.22;
System.out.println(p2.price);
}
}
class Phone{
String brand;//品牌
double price;//价格
double size;//尺寸
String color;//颜色
public void call(){
System.out.println("正在打电话");
}
public void message(){
System.out.println("正在发短信");
}
public void video(){
System.out.println("正在看直播");
}
}
面向对象的三个特性:封装,继承,多态
封装:又分为封装属性和封装方法
封装属性:
1.用private关键字修饰属性,进行封装
2.添加被封装对象的set和get方法
3.调用get和set方法操作被封装的属性
封装方法:
1.用private修饰资源
2.用本类的公共方法调用该方法
以下是封装的基本方法:
public class TestCar {
public static void main(String[] args) {
//4.创建汽车类对象
Car c=new Car();
//5.设置创建好的对象的属性
// c.brand="BWM";
// c.color="暗夜紫";
// c.price=300;
// c.length=0.2;
//6.查看刚刚设置好的属性值
// System.out.println(c.brand);
// System.out.println(c.color);
// System.out.println(c.price);
// System.out.println(c.length);
//7.3操作所有方法给所有属性赋值
c.setBrand("特斯拉");
c.setColor("五光十色的白");
c.setPrice(1999.9);
c.setLength(2.01);
//7.4使用get方法查看所有属性的赋值是否成功
System.out.println(c.getBrand());
System.out.println(c.getColor());
System.out.println(c.getPrice());
System.out.println(c.getLength());
//8.通过创建好的对象调用汽车累的功能
c.start();
// c.stop();
//匿名对象 主要用于一次性使用
new Car().start();
}
}
//1.抽象汽车这一类事物的共同点,用class描述
class Car{
//2.属性--用成员变量来描述
//7.1封装所有属性
private String brand;//品牌
private String color;//颜色
private double price;//价位
private double length;//车长
//3.功能--用方法描述
public void start(){
System.out.println("汽车启动了");
//9.2在本类的公共方法里调用被封装的方法
stop();
}
//9.1封装汽车停止的方法
private void stop(){
System.out.println("汽车停止了");
}
//7.2生成所有的get和set方法
public String getBrand() {
return brand;
}
public void setBrand(String brand) {
this.brand = brand;
}
public String getColor() {
return color;
}
public void setColor(String color) {
this.color = color;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
public double getLength() {
return length;
}
public void setLength(double length) {
this.length = length;
}