类与对象
**概述:**类就是一类事物的模板;对象就是这类事物中一个具体的事物;
就好比”狗“是一个类;
不论哪只狗都会有自己的体重、岁数、颜色…等等共同的特性在类里,我们称之为属性;
并且每只狗都会有共同的动作,比如跑、吐舌头、摇尾巴等动作,在类中,我们称之为行为;
而对象也就相当于我们给”狗“这个类中的一只狗具体取了一个具体的名字,它叫旺财、年龄是3岁、颜色是黄色;
如下这段代码,我们创建了一个”狗“类,狗的共同属性有体重、名字、颜色…
狗都可以狗叫,这需要我们定义一个方法来保存它;
public class Dog {//狗类
public int weight;//体重
public String color;//颜色
public String name;//名字
public void cry() {//行为
System.out.println("汪汪汪!");
}
}
我们在 main 方法中根据“狗”这个模板创建出了一只狗,这只狗有具体的名字、颜色、体重,会狗叫;是一个具体的物
Dog dog1 //只是给它起了个名字,由这个名字才能指向内存堆里具体的数据
new Dog(); //这才是在内存里的具体的数据;
大概相当于婴儿还没出生的时候,爸爸就已经给婴儿起好了名字;
public class Demo1 {
public static void main(String[] args) {
Dog dog1 = new Dog();
dog1.name = "旺财";
dog1.color = "黄色";
dog1.weight = 30;
dog1.cry();
System.out.println("这只狗叫:" + dog1.name +
"\n这只狗的体重为(kg):" + dog1.weight + "\n这只狗的颜色是:" + dog1.color);
}
}
封装
封装相当于给我们的代码上了一层锁,想要调用就不是那么简单的 对象名.属性 了,有效的防止自己的代码被随意处置
这段代码,我们将汽车的属性都设置成了私有的,只有当前类才能够调用它们,其他类都调用不了,就提高了代码的安全性
private 关键字: 表示在同一类内可见。使用对象:变量、方法。 注意:不能修饰类(外部类)
public class Limousine {//轿车类
private String brand;//品牌
private String model;//型号
private double price;//价格
private double fuelConsumption;//油耗
}
想要在其他类中使用,需要用到:
set属性(): 用来设置属性值的方法
get属性(): 用来获取属性值的方法
下面这段代码先将 Limousine 这个类设为共有的,再提供了对属性getBrand的获取和修改方式;
public Limousine(){
}
public String getBrand() {
return brand;
}
public void setBrand(String brand) {
this.brand = brand;
}
这段代码便是我们在 Demo2 类中需要进行的修改和访问操作,先声明了一个对象,修改“品牌”属性为“audi”,输出我们的 Brand 属性
public class Demo2 {
public static void main(String[] args) {
Limousine limousine1 = new Limousine();
limousine1.setBrand("奥迪");
System.out.println("品牌为:"+limousine1.getBrand());
}
}
补充: 既然封装是面向对象的三大特征之一,那么我们在使用的时候,
就应该遵循一些规则(我们以后在写成员变量的时候,
都要私有化,提供公共访问方式)
**封装使用的步骤:**
1 成员变量私有化 private
2 提供公共访问方式 getXXX() setXXX()
封装最主要的功能在于我们能修改自己的实现代码,而不用修改那些调用我们代码的程序片段。
适当的封装可以让程式码更容易理解与维护,也加强了程式码的安全性。