package cn.kgc.tyl.test0923.entity;
import lombok.NoArgsConstructor;
/**
*1.使用封装分别创建实体类Dog和1.使用封装分别创建实体类Dog和Penguin,其中:
Dog类中
包含属性(name,love,health,strain)
方法:print()显示狗狗的信息
构造方法:无参构造函数和带参构造函数,其中:
Dog类中
包含属性(name,love,health,strain)
方法:print()显示狗狗的信息
构造方法:无参构造函数和带参构造函数
Penguin类中
包含属性(name,love,health,sex) sex定义为静态常量并且赋值为Q仔
方法:print()显示企鹅的信息
构造方法:无参构造函数和带参构造函数
* */
@NoArgsConstructor
public class Dog {
//包含属性(name,love,health,strain
private String name,Strain;
private int love,health;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getStrain() {
return Strain;
}
public void setStrain(String strain) {
Strain = strain;
}
public int getLove() {
return love;
}
public void setLove(int love) {
if (love>100||love<0) {
this.love = 0;
}else {
this.love = love;
}
}
public int getHealth() {
return health;
}
public void setHealth(int health) {
if (health>100||health<0) {
this.health = 0;
}else {
this.health = health;
}
}
public Dog(String name, String strain, int love, int health) {
super();
this.name = name;
Strain = strain;
setHealth(health);
setLove(love);
}
@Override
public String toString() {
return "狗狗的名字=" +this.getName()+ ", 品种=" + this.getStrain()+ ", 和主人的亲密的=" + this.getLove() + ", 健康值是=" + this.getHealth() + "]";
}
public void print() {
System.out.println("狗狗的名字=" +this.getName()+ ", 品种=" + this.getStrain() + ", 和主人的亲密的=" + this.getLove() + ", 健康值是=" + this.getHealth() + "."
);
}
}
***********************************************************************************
package cn.kgc.tyl.test0923.entity;
import lombok.NoArgsConstructor;
/**
*1.使用封装分别创建实体类Dog和1.使用封装分别创建实体类Dog和Penguin,其中:
Dog类中
包含属性(name,love,health,strain)
方法:print()显示狗狗的信息
构造方法:无参构造函数和带参构造函数,其中:
Dog类中
包含属性(name,love,health,strain)
方法:print()显示狗狗的信息
构造方法:无参构造函数和带参构造函数
Penguin类中
包含属性(name,love,health,sex) sex定义为静态常量并且赋值为Q仔
方法:print()显示企鹅的信息
构造方法:无参构造函数和带参构造函数
* */
@NoArgsConstructor
public class Penguin {
// 包含属性(name,love,health,sex
private String name;
private int love,health;
public static final String SEX="Q仔";
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getLove() {
return love;
}
public void setLove(int love) {
if (love>100||love<0) {
this.love = 0;
}else {
this.love = love;
}
}
public int getHealth() {
return health;
}
public void setHealth(int health) {
if (health>100||health<0) {
this.health = 0;
}else {
this.health = health;
}
}
public Penguin(String name, int love, int health) {
super();
this.name = name;
setHealth(health);
setLove(love);
}
@Override
public String toString() {
return "企鹅的名字=" +this.getName()+ ", 性别=" + this.SEX + ", 和主人的亲密的=" + this.getLove() + ", 健康值是=" + this.getHealth() + "]";
}
public void print() {
System.out.println("企鹅的名字=" +this.getName()+ ", 性别=" + this.SEX + ", 和主人的亲密的=" + this.getLove() + ", 健康值是=" + this.getHealth() + "."
);
}
}
*****************************************************************************************
package cn.kgc.tyl.test0923.entity;
/**
*2.编写测试类Test
使用无参构造方法创建Dog类的对象和Penguin对象,并且给Dog和Penguin对象的属性赋值,输出狗狗和企鹅的信息
使用带参构造方法创建Dog类的对象和Penguin对象,并且给Dog和Penguin对象的属性赋值,输出狗狗和企鹅的信息
3.方法重载的概念:同一个类中,方法同名不同参
4.封装的概念:高内聚低耦合,隐藏属性,通过控制语句,防止非法传参
5.封装的优势:防止非法赋值,保护数据,减少暴漏不必要的信息
6.封装的步骤:1属性设为私有,2构建setget方法,并在必要条件给set方法添加控制语句,并在有参构造方法中进行set方法调用
7.类图的作用:通过写类的名称,属性名称和数据类型,方法名和返回值,方便自己看信息梳理思路,也方便工作交接;
* */
public class Test {
public static void main(String[] args) {
//狗类
Dog dog2=new Dog("小黑", "牧羊犬", -11, 0);
dog2.print();
Dog dog1=new Dog();
dog1.setName("小白");
dog1.setHealth(19);
dog1.setStrain("藏獒");
dog1.setLove(-11);
dog1.print();
//企鹅类
Penguin p1=new Penguin();
p1.setLove(100);
p1.setName("小白");
p1.setHealth(90);
p1.print();
Penguin p2=new Penguin("小花", -100, 105);
p2.print();
}
}
********************************************************
运行结果:
狗狗的名字=小黑, 品种=牧羊犬, 和主人的亲密的=0, 健康值是=0.
狗狗的名字=小白, 品种=藏獒, 和主人的亲密的=0, 健康值是=19.
企鹅的名字=小白, 性别=Q仔, 和主人的亲密的=100, 健康值是=90.
企鹅的名字=小花, 性别=Q仔, 和主人的亲密的=0, 健康值是=0.
封装小Demo
最新推荐文章于 2021-06-25 14:59:32 发布