package test0504;
//age私有(最小)化 防止不“合法(合常理的数值)”,类以外及时建立对象也不能直接访问
//但是人应该有年龄,就是在person类中提供对应访问age的方式
//一个私有属性对应两个方法(set get)(麻烦&高级工具)
//私有仅仅是封装的一种表现形式 封装不是私有
//对外提供访问方式 可在访问方式中加逻辑判断
//对访问语句进行操作 提高代码健壮性
//一般需要隐藏
class person
{
private int age;
private String name;
person()//构造函数 用于给对象初始化
{
System.out.println("naem: "+name+",,age: "+age);
cry();
}
person(String n)
{
name=n;
System.out.println("naem: "+name+",,age: "+age);
cry();
}
person(String name , int a)
{
//this.name=name;//
this(name); //构造函数键调用 构造函数间互相调用 p(name) this代表对象 必须是构造函数中的第一句 初始化动作要先执行 初始化中还有初始化 更细的初始化先执行
age=a; //以上不能用在一般函数间
System.out.println("naem: "+name+",,age: "+age);
cry();
}
//构造代码块
{
System.out.println("他们都会哭");//不同对象的共性
}
public void setage(int a)
{
if(a>0&&a<=130)
age=a;
else
System.out.println("NOOOOOOOO illegel age");
}
public int get()
{
return 0;
}
void speak()
{
System.out.println("age="+age);
}
public void cry()
{
System.out.println("Cry");
}
public boolean compare(person p)
{//当定义类中的功能时,该函数内部要调用到该函数的对象时,用
//this表示这个对象 但凡本类功能内部使用到本类对象
return this.age==p.age; //代码简化 不必要用if语句.........
}
}
class persondemo
{
public static void main(String arr[])
{
/*person p=new person();
p.setage(-11);
p.speak();*/
/*2person p1=new person();
person p2=new person("haha");
*/
person p3=new person("haha",20);
}
}
总结:私有化 构造函数 隐藏