封装与构造方法:封装必须在构造方法中限定,通过控制条件限制非法传参

package cn.kgc.tyl.test0922;



import lombok.NoArgsConstructor;
import lombok.ToString;

/**
 *封装步骤:1属性私有;2setget方法【看实际需要是否添加ifelse控制语句,进行附默认值】3.在构造方法中调用修改属性的set方法;
2类图包含类名,属性 及属性的数据类型,【也可以含初始赋值】,方法名,方法的返回类型
3.实例化就是赋值,系统可以提供一个无参的默认构造,可以在无参构造中给对象赋值;也可以在无参构造方法中赋值,同时对属性实例化;有参构造,和构造形成重载【一个类中,方法名都是类名,方法名相同,参数列表不同】
3.重写是在不同类中,存在继承关系,方法名和参数列表相同,方法体不同。
4构造方法就是方法名,不能有返回值;
5set方法中this可省略,第一个属性名是类名,第二个是形参,this作用指当前类的属性和方法;
6static 是类变量,可以赋初始值,用类名和对象都可以使用,可选择性赋初始值;如果加final,则证明是常量,必须赋初始值,并且变量名进行大写。

 狗类封装
 * */
@ToString
@NoArgsConstructor


public class Dog {
public Dog(String name, int love) {
		super();
		this.name = name;
		this.setLove(love);//必须在构造方法中进行输入判断;否则会出现非法输入值;
		//如果不对构造方法调用set方法限定,相当于没起到封装作用
	}
@Override
	public String toString() {
		return "Dog [name=" + name + ", love=" + love + "]";
	}
public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}

private String name;
private int love;
public void setLove(int love) {
	if (love>100||love<0) {
		this.love=0;
		System.out.println("亲密值必须在0-100范围内");
	}else {
		this.love =love;
	}
}
public int getLove() {
	return love;
}
	
}
*****************************************************************************************************************
package cn.kgc.tyl.test0922;
/**
 *测试狗类
 封装的作用:隐藏属性,防止非法传参,通过控制语句进行限定给默认值;
 * */
public class TestDog {
 public static void main(String[] args) {
 Dog dog=new Dog("小黑", -90);
 System.out.println(dog);//默认调用了toStirng方法,如果没有toString方法打印出的是地址值;哈希码;
}
}
/**
 *亲密值必须在0-100范围内
Dog [name=小黑, love=0]
 
 * */
©️2020 CSDN 皮肤主题: 数字50 设计师:CSDN官方博客 返回首页