-
此对象已经准备好,所以会生成一个唯一的地址值,并将这个地址值交给栈内存中的变量p来保存
-
如果后续想要对对象做操作,比如:p.price=88.8;先会找到栈中p变量保存的地址值,根据这个地址找到堆中的对象再做进一步的操作
3.1为啥要用封装?
-
封装可以提高程序的安全性
-
封装可以让资源按照我们预先规定的方式来操作
3.2属性的封装
用private修饰属性,一旦属性被private修饰,就只能在本类中使用,外界无法访问
所以为了让外界能够按照我们提供的方式来调用,需要根据属性生成公共的getXxx()与setXxx()方法
3.2 方法的封装
方法的封装也是使用private来修饰方法
如果想要调用私有方法的功能,就需要在本类的公共方法里调用这个私有方法
===============================================================================
-
定义汽车类Car
-
定义汽车类的属性:颜色 品牌 价格 车长
-
定义汽车类的方法:启动功能start() 停止功能stop(),stop()要封装,先启动再停止
-
创建Car类的对象c,给c对象的属性赋值并查看:“暗夜紫” “BMW” 200 0.2
-
封装定义好的4个属性,并提供属性对应的get与set方法
-
使用set()与get()重新给c对象赋值并查看赋值结果 “特斯拉” “black” 200.02 3
package cn.tedu.review;
/本类用于OOP的知识回顾/
public class TestCar {
public static void main(String[] args) {
//4.创建汽车类的对象c
Car c = new Car();
//5.给c对象的属性赋值,并打印查看赋值的结果"宝马" “活力橙” 200000.98 3.1
// c.brand = “宝马”;
// c.color = “活力橙”;
// c.price = 200000.98;
// c.length = 3.1;
// System.out.println(c.length);
// System.out.println(c.price);
// System.out.println(c.brand);
// System.out.println(c.color);
//6.通过c对象调用汽车类的方法
c.start();
//c.stop();
//8.通过set方法给c对象重新赋值 “特斯拉” “石墨绿” 210000.99 2.9
c.setBrand(“特斯拉”);
c.setColor(“石墨绿”);
c.setPrice(210000.99);
c.setLength(2.9);
//9.通过get方法查看c对象的属性是否赋值成功
System.out.println(c.getBrand());
System.out.println(c.getColor());
System.out.println(c.getPrice());
System.out.println(c.getLength());
}
}
//1.定义汽车类Car,用来描述汽车这一类事物
class Car{
//2.定义汽车类的属性
//7.封装属性,并提供对应的get与set方法
private String brand;//品牌
private String color;//颜色
private double price;//价格
private double length;//车长
//3.定义汽车类的方法
public void start(){
System.out.println(“汽车启动~”);
stop();//在本类的公共方法里调用这个私有方法
}
//10.封装并调用stop()的功能
private void stop(){
System.out.println(“汽车停止~”);
}
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;
}
读者福利
更多笔记分享
rice(double price) {
this.price = price;
}
public double getLength() {
return length;
}
读者福利
[外链图片转存中…(img-G1QFyG81-1716572477826)]
更多笔记分享
[外链图片转存中…(img-oyLay11k-1716572477826)]