类的封装和继承
封装
封装是什么?其实类就是对属性和方法的一个封装,将类里面的属性和方法用访问修饰符的方法限制他们的对外公开的程度,这就是封装。
封装的好处在于可以提高数据的安全性防止出现一些bug,并且可以也是隐藏内部的实现。
下面看看代码:
public class Dog{
private String name;
private int age;
public sex;
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
当类里面的属性用了private私有化后,在类外像对这个属性进行访问或者修改的话就需要用到get和set的方法,在类外对其进行修改和访问。
这里在说一下this这个关键字,在方法里出现了返回值的变量名和类里属性名相同的情况下,可以使用this关键字来区分,加了this的为本类内的变量。
继承
继承其实本身是一种层级的划分,在一个原有类的基础上通过关键字extends继承后在进行拓展而生成新的一个或者多个类,这样子可以极大的提升代码的重用性。
然后在java中被继承的类叫父类,而继承的类叫做子类。一个子类只能有一个父类,这是继承的单根性,
但是继承又有传递性,也就是子类的父类要是有父类的话他的子类就会继承父类的父类,重下至上一级一级的都会继承下来,
以下是一个父类的代码:
public class Pet {
String name;
String sex;
int health;
int love;
public Pet() {
}
public void print() {
System.out.println("我的名字是"+name+",健康值是"+health+","
+ "和主人的亲密度是"+love+",我的性别是"+sex+"。");
}
}
以下是一个子类的代码:
public class Dog extends Pet {
public Dog(String name,String sex, int health,int love) {
super();
this.name =name;
this.sex = sex;
this.health = health;
this.love = love;
System.out.println("这是一只狗");
}
}
这里是一个叫做Dog的类继承了一个叫做Pet的类。
这里说一下super这个关键字,在子类中想显示的调用父类的无参构造(不调用系统也是默认调用的),或者当没有父类没有无参构造的时候就需要用到super这个关键字来调用父类带参的构造方法,这里需要注意,如果调用父类构造的话必须放在子类构造里的第一行代码位置,不然就会报错!!!。