//封装
package temp_01;
class Person
{
private String name = "张三";
private int age;
void Talk()
{
System.out.println("我是:"+name+",今年:"+age+"岁");
}
public String get_Name()
{
return name;
}
/**
* @param str 在面向对象法则中是不允许对象直接访问类中的属性的。通过将类中的属性封装(private)
* 可以避免程序中这样的错误产生。主要是在set方法中加上一些限制条件,这样就有效地避免了直接访问类的
* 属性时由于无法有效地限制数据的合法性,而造成的将不合法的数据赋给类的属性的情况。
*
*/
public void set_Name(String str)
{
if(!str.trim().equals(""))
name = str;
}
public int get_Age()
{
return age;
}
public void set_Age(int x)
{
if(x>0)
age = x;
}
}
public class encapsulation {
public static void main(String[] args)
{
Person p = new Person();
//p.set_Name(" ");
p.set_Name("李四");
// p.set_Age(-30);
p.set_Age(20);
p.Talk();
}
}