您的位置:首页 > 编程语言 > Java开发

java第12天

2016-03-23 22:46 253 查看

封装

指隐藏对象的属性和实现细节,仅对外提供公共访问方式

好处:

将变化隔离

便于使用

提高重用性

提高安全性

封装原则

将不需要对提供的内容隐藏起来。

将属性隐藏,提供公共方法对其访问

私有

private static void A()


权限修饰符,用于修饰类中的成员(成员变量,成员函数),只在本类中有限。



图中所示的大概思路是:

* 定义两个类,一个类1内定义一个private的变量age,另一个类2实现修改变量age;

* 类1中,封装了age的判定,图中表示将判断传入数据a是否大于零或者小于130,若符合则通过,将传入数据赋给age。然后调用speak()函数,将age打印出来,若不符合则打印出”false age”

* 同时在类1中,定义一个getAge()函数,用于返回age;

* 类2中为主函数,new一个类2的函数定义为p;有一个注释为p.age(-20)这样并不可行



class private2
{
private int age;
void speak()
{
System.out.println("age="+age);//打印该值
}
void setage(int a)
/*
之前这里添加一个public static void setage(int a )
出现了bug,提示为无法从静态上下文中引用非静态方法
用static修饰的方法称为静态方法,修饰变量则为静态变量,又分别叫类方法或者类变量。
静态方法中不能直接调用非静态方法,下面代码我调用了speak()这个非静态的方法,所以报错。
只要不是static修饰的方法,必须要通过对象进行引用。
在非静态方法里,可能忽略了(this)。在静态的方法里,看看有没有你这个方法所在类的对象。
*/
{
if (a>0&&a<120)
{
age=a;//若符合将age给a
speak();//并打印
}
else
System.out.println("false");
}
public int getage()
{
return age;//返回一个
8f7a
年龄
}
}
class demo
{
public static void main(String[] args)
{
private2 p=new private2();
p.setage(-40);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: