java第12天

封装

  • 指隐藏对象的属性和实现细节,仅对外提供公共访问方式
  • 好处:
    将变化隔离
    便于使用
    提高重用性
    提高安全性
  • 封装原则
    将不需要对提供的内容隐藏起来。
    将属性隐藏,提供公共方法对其访问

私有

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;//返回一个年龄
    }
}
class demo
{
    public static void main(String[] args)
    {
        private2 p=new private2();
        p.setage(-40);
    }
}

转载于:https://my.oschina.net/jiMap/blog/665894

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值