zoukankan      html  css  js  c++  java
  • Java 封装


    封装就是保护内容。保证某些属性或方法可以不被外部看见。

    一般情况下,类中的每一个属性都必须封装



    一. 封装的实现

    为属性封装private 属性类型 属性名称

    为方法封装private 方法返回值 方法名称(参数列表){}

    class Person{
        private String name;
        private int age;
        public void tell(){
            System.out.println("姓名:" + name + ", 年龄:" + age);
        }
    }
    
    public class EncDemo02 {
        public static void main(String[] args) {
            Person per = new Person();
            per.name = "张三";
            per.age = 30;
            per.tell();
        }
    }
    
    

    输出结果:

    java: name可以在Person中访问private
    

    运行结果出错,将 name 和 age 属性设置为私有的,只能本类访问,其他类访问不了。



    二. 访问封装的内容

    对每个私有属性创建一对赋取值方法。用 settergetter 方法。

    class Person{
        private String name;
        private int age;
    
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        public int getAge() {
            return age;
        }
    
        public void setAge(int age) {
            this.age = age;
        }
    
        public void tell(){
            System.out.println("姓名:" + name + ", 年龄:" + age);
        }
    }
    

    this 关键字是为了解决实例变量(private String name)局部变量(setName(String name)中的name变量)之间发生同名的冲突。


    通过 setName() 和 setAge() 为属性赋值。

    public class EncDemo02 {
        public static void main(String[] args) {
            Person per = new Person();
            per.setName("张三");
            per.setAge(30);
            per.tell();
        }
    }
    

    输出结果:

    姓名:张三, 年龄:30
    
  • 相关阅读:
    高仿爱鲜蜂购物应用源码
    控制ClistCtrl的滚动的位置
    VC保存当面某个区域的图片
    MFC 屏幕截图方法
    回调函数使用(三)
    回调函数使用方法二
    VS2010编译Boost 1.57 静态链接库
    Windows7+VS2010下OpenGL的环境配置
    CxImage图像库的使用 .
    VS2010+PCL配置
  • 原文地址:https://www.cnblogs.com/keye/p/15162031.html
Copyright © 2011-2022 走看看