先看一个程序;
创建的类;
package demo04private;
public class person {
String name;
int age;
public void show(){
System.out.println("我叫"+name+"我今年"+age+"岁了");
}
}
创建的对象;
public class demo04person {
public static void main(String[] args) {
person stu = new person();
stu.name = "tianle";
stu.age = -20;
stu.show();
}
}
运行结果;
我叫tianle我今年-20岁了
让我们来看,程序没有任何问题,但是有一个常识问题,年龄是-20岁,这样好吗,这样不好。
我们定义person的时候用int来定义的,所以我们无法阻挡他的有效之内的赋值。
【解决方案】- 用private关键字将需要保护的成员变量进行修饰。
【格式】;
private 数据类型 变量名称;
一旦使用private关键字 ,在本类当中仍然可以随意访问,但是一旦超过本类范围就不能直接访问了。
不过我们可以简介访问,就是要等一一对儿setter//getter方法。
下面使用方法的代码;
类;
package demo04private;
public class person {
String name;
private int age;
public void show(){
System.out.println("我叫"+name+"我今年"+age+"岁了");
}
//set方法
public void setAge(int num){
if (num<=100&&num>=0){
age = num;
}else{
System.out.println("数据不合理");
}
}
public int getAge(){
return age;
}
}
对象;
package demo04private;
public class demo04person {
public static void main(String[] args) {
person stu = new person();
stu.name = "tianle";
//stu.age = -20;
stu.show();
stu.setAge(20);
}
}
运行情况;
我叫tianle我今年0岁了
[scode type="yellow"]切记 一定会要在一个包里才行。
【注意事项】;
两个方法必须叫setXxx和getXxx命名规则。
对于setter来说,不能有返回值,参数类型和成员变量类型一致。
对于getter来说,不能有参数,返回值类型和成员变量类型一致。[/scode]
评论 (0)