1.如何实现输入一个数判断健康值? 2.对于private类型的变量,如果要改变变量的值,是在set中改还是在下面的dog.setLove(16)这里改?
package study;
public class Dogs {
private String strain = "拉布拉多犬";
private int health = 100;
private int love = 0;
public String getStrain() {
return strain;
}
public void setStrain(String strain) {
this.strain = strain;
}
public int getLove() {
return love;
}
public void setLove(int love) {
this.love = 50;
}
public int getHealth() {
return health;
}
//如何实现从键盘输入一个数
public void setHealth(int health){
if(health > 100 || health < 0) {
this.health = 40;
System.out.println("健康值应该在0——100之间,默认值是40");
}else
this.health = health;
}
public static void main(String[] args) {
Dogs dog = new Dogs();
dog.getHealth();
System.out.println(dog.getHealth());
dog.setLove(16);
System.out.println(dog.getLove());
dog.setStrain("大黄狗");
System.out.println(dog.getStrain());
}
}
1.
//输入一个健康值
Scanner scan = new Scanner(System.in);
int health = scan.nextLine();
//将健康值set进入你实例化的dog里。
//因为你在setHealth()方法中有判断了,所直接set进去就可以了,会自行判断,
//超出范围会执行你的system.out,并且把health改为40,否则正常赋值
dog.setHealth(health);
System.out.println(dog.getHealth());
2.对于第二个问题,private类型的变量,在定义的实体类中,可以直接赋值与更改,就是在你的dog这个Class类中可以直接调用。
private是Java中对于类的属性的封装包装,限制了其他类方法对其的直接调用,所以再main主程序,或者使用其他类的程序下,
是不能直接调用private修饰的属性的。所以需要调用提供有public修饰的set方法进行设置,同理想要获取那个值,则要调用public修饰的get方法
想要改变类中的private的值,除非在类中写了方法去修改,不然只能在本类中对它进行修改。
实现从键盘输入,在main函数中
Scanner sc = new Scanner(System.in);
int input = sc.nextInt();
// 传进 方法中
setHealth(input);
用getset方法,改变love的值 用setLove(16)