java第12天

来源:互联网 发布:淘宝客户端改评价 编辑:程序博客网 时间:2024/06/07 16:59

封装

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

私有

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);    }}
0 0
原创粉丝点击