/*
* 面向对象:继承,封装,多态。
* 封装:隐藏实现细节,对外提供公共的访问方式(接口)
* 封装的体现之一:将属性都私有化(private),对外提供setXXX,getXXX方法来访问。
* 好处1:提高安全性,不允许直接访问细节,并通过公共的方式来访问,可以实现可控
* 2.提高了易用性。
3.提高了复用性。
4.隔离了变化。
*/
/*定义类,描述人
属性:年龄
行为:说话
*/
class Person
{
private int age; //private:私有的,外类不可访问
public void setAge(int a) //对私有的数据,可以通过方法的方式对其进行访问
{
if(a<0||a>130)
{
throw new RuntimeException(a+"数值是错误的"); //抛出异常
}
else
{
age=a; // ! 外界把值传给参数,再传给私有数据,相当于拐了个弯,多走一步
} // ! 效果:可以对私有的数据加以条件控制
}
public int getAge()
{
return age;
}
void speak()
{
System.out.println("age="+age);
}
}
public class Demo{
public static void main(String[] agrs)
{
Person p = new Person(); //左边在栈里创建一个变量p,右边在堆里创建一个Person对象,把对象的地址值赋给变量p
// p.age=-12; //给对象中的属性赋值
p.setAge(-13);
p.speak();
}
}
* 面向对象:继承,封装,多态。
* 封装:隐藏实现细节,对外提供公共的访问方式(接口)
* 封装的体现之一:将属性都私有化(private),对外提供setXXX,getXXX方法来访问。
* 好处1:提高安全性,不允许直接访问细节,并通过公共的方式来访问,可以实现可控
* 2.提高了易用性。
3.提高了复用性。
4.隔离了变化。
*/
/*定义类,描述人
属性:年龄
行为:说话
*/
class Person
{
private int age; //private:私有的,外类不可访问
public void setAge(int a) //对私有的数据,可以通过方法的方式对其进行访问
{
if(a<0||a>130)
{
throw new RuntimeException(a+"数值是错误的"); //抛出异常
}
else
{
age=a; // ! 外界把值传给参数,再传给私有数据,相当于拐了个弯,多走一步
} // ! 效果:可以对私有的数据加以条件控制
}
public int getAge()
{
return age;
}
void speak()
{
System.out.println("age="+age);
}
}
public class Demo{
public static void main(String[] agrs)
{
Person p = new Person(); //左边在栈里创建一个变量p,右边在堆里创建一个Person对象,把对象的地址值赋给变量p
// p.age=-12; //给对象中的属性赋值
p.setAge(-13);
p.speak();
}
}