当前位置: 首页 > 工具软件 > JavaFE > 使用案例 >

javafe封装、继承

司徒墨竹
2023-12-01

一、封装的实现步骤:

1.属性私有化

private int numOfLegs;//有几条腿

2.提供set,get方法 (可用快捷方式添加)

public int getNumOfLegs() {
return numOfLegs;
}
public void setNumOfLegs(int numOfLegs) {
this.numOfLegsth=numOfLegsth;
}

3.在set,get方法中加入对属性的限制

public int getNumOfLegs() {
return numOfLegs;
}
public void setNumOfLegs(int numOfLegs) {
if(numOfLegs!=4){//为属性添加限制
numOfLegs=4;
}else{
this.numOfLegs = numOfLegs;
}

}

二、方法的重载

同类同名不同参

public  String sayHello(){
return("摇摇尾巴");
}
public  String sayHello(int mood){
this.setMood(mood);
switch(this.mood){
case 1:
return("呜呜叫");
case 2:
return("汪汪汪叫");
default:
return("摇摇尾巴");
}

}

//在同一类中,名字同为sayHello,第一个无参数,第二个有参数

三、构造方法

1.java中每个类都有构造方法,用来初始化该类的一个对象

//为Dog添加无参构造方法和有参构造方法

 public Dog() {//无参构造

this.numOfLegs =4;
this.carnivorous=true;//食肉
}
public Dog( boolean carnivorous,int numOfLegs) {//有参构造
super(carnivorous);
this.numOfLegs = numOfLegs;
}

2.构造方法和类名相同,没有返回类型,不能写void

3.可以重载

4.构造方法只能由new关键字和this()调用

Dog dog1=new Dog();

dog1.sayHello(2);

四、继承

避免代码冗余,提高代码的可重用性和可维护性,父类的属性和方法可用于子类,让程序设计变得更加简单

1>父类

public class Animal {//proteced关键字
     protected boolean mammal;//是否是哺乳动物
     protected boolean carnivorous;//是否食肉

     protected int mood;//情绪

}

//构造方法,初始化属性

public Animal() {

System.out.println("这是动物类的无参的构造方法!");
}
public Animal(boolean mammal, boolean carnivorous, int mood) {
System.out.println("这是动物类的有参的构造方法!");
this.mammal = mammal;
this.carnivorous = carnivorous;
this.mood = mood;
}

2>子类     

public class Dog extends Animal {//extends继承父类
public Dog() {
this.carnivorous=true;
this.mammal=true;
this.mood = mood;
}
public Dog(boolean mammal, boolean carnivorous, int mood) {
super(mammal,carnivorous,mood);
//调用父类的构造方法
}

五、方法重写

1.放生在子类和父类之间

2.方法名相同,参数列表相同,返回类型相同

1>父类

public String sayHello(){
return "hello!";
}
public String sayHello(int mood){
switch(mood){
case 1:
return("不高兴的叫");//情绪烦躁
case 2:
return("高兴的叫");//情绪好
default:
return("hello");
}
}

2>子类

@Override
public String sayHello() {
return "汪汪叫";
}
@Override
public String sayHello(int mood) {
switch(mood){
case 1:
return("蹭蹭你的腿");//情绪烦躁
case 2:
return("咬你一口");//情绪好
default:
return("汪汪叫");
}
}

 类似资料: