封装、继承、多态
面向对象的特点(封装继承多态),面向对象编程可以降低项目的耦合性,便于开发
1、封装
隐藏对象的属性和实现细节,仅对外提供公共访问方式,将变化隔离,便于使用,提高复用性和安全性。
//将类中属性私有化 保护属性 ,创建getter和setter方法来进行外边访问
public class EncapTest{
private String name;
private String idNum;
private int age;
public int getAge(){
return age;
}
public String getName(){
return name;
}
public String getIdNum(){
return idNum;
}
public void setAge( int newAge){
age = newAge;
}
public void setName(String newName){
name = newName;
}
public void setIdNum( String newId){
idNum = newId;
}
}
封装的优点
-
良好的封装能够减少耦合,符合程序设计追求“高内聚,低耦合”。
-
类内部的结构可以自由修改。
-
可以对成员变量进行更精确的控制。
-
隐藏信息实现细节。
意义:封装的意义在于保护或者防止代码(数据)被我们无意中破坏。在面向对象程序设计中数据被看作是一个中心的元素并且和使用它的函数结合的很密切,从而保护它不被其它的函数意外的修改
2、继承
JAVA继承指子类可以继承父类的实例域和方法,可以具有父类的相同的行为
如动物是一个父类 他的子类可以有食草动物和食肉动物 两个子类可以继承动物父类的方法和实例域
--子类继承父类
class 父类 {
}
class 子类 extends 父类 {
}
继承可以降低代码的重写率,如两者有大量同样的方法,可以通过创建同一个父类,2子类继承来减少代码的编写,减少代码重写,提高代码的复用性
//狗类
public class Dog {
private String name;
private int id;
public Dog(String myName, int myid) {
name = myName;
id = myid;
}
public void eat(){
System.out.println(name+"正在吃");
}
public void sleep(){
System.out.println(name+"正在睡");
}
public void introduction() {
System.out.println("大家好!我是" + id + "号" + name + ".");
}
}
//猫类
public class Cat {
private String name;
private int id;
public Mouse(String myName, int myid) {
name = myName;
id = myid;
}
public void eat(){
System.out.println(name+"正在吃");
}
public void sleep(){
System.out.println(name+"正在睡");
}
public void introduction() {
System.out.println("大家好!我是" + id + "号" + name + ".");
}
}
//创建同一父类
public class Animal {
private String name;
private int id;
public Animal(String myName, int myid) {
name = myName;
id = myid;
}
public void eat(){
System.out.println(name+"正在吃");
}
public void