zoukankan      html  css  js  c++  java
  • java的private权限修饰符

    Java四大特性:抽象,封装,继承,多态。
    java四大权限修饰符:public,protected,default,private.

    private这个关键字可以帮我们实现java的封装。
     
    封装:
    何为封装?我的理解就是,在一个java类里面,成员变量设置为private,不让其它类直接访问这个private的成员。如果其它类要访问这个类的private变量,
    需要调用此类里面的方法。
    在抽象中将属性与方法写在一个类中就是封装,而封装就是为了保证抽象出来的特征和方法的安全性,封装就是包装的过程,
    注意封装不是绝对的封装,如果其他程序要获取已经封装好的数据,就要通过程序指定的接口或方法才能获取。
     
    以下代码在编译时会报错,因为age是用private修饰的,在PersonTest这个类中不能直接访问age这个属性。
    public class Person {
    //用private修饰的变量,在其它类中不能直接访问
    private int age; void speak(){ System.out.println("I'am a person, my age:"+age); } } class PersonTest{ public static void main(String[] args) { Person person=new Person();
    //虽然负数也是int类型,但我们知道一个人的年龄不能是负数
        //需要我们写一些语句去判断正负 person.setAge(
    -20); person.speak(); } }

    private实现了对类的属性的封装,但是其它类不能直接访问private属性,即使在其它类里面创建了类的对象也不能。

    如果在其它类中要访问是私有的属性,常见的作法是调用geter和setter方法。

    如下:

    public class Person {
        private int age;
    
        public int getAge() {
            return age;
        }
    
        public void setAge(int age) {
            if(age>0 && age<130) {
                this.age = age;
            }else{
                System.out.println("Age is not right,please check your input.");
            }
        }
    
        void speak(){
    
            System.out.println("I'am a person, my age:"+age);
        }
    }
    
    class PersonTest{
        public static void main(String[] args) {
            Person person=new Person();
            person.setAge(20);
            person.speak();
        }
    }
  • 相关阅读:
    Docker数据卷
    Hyperloglog算法
    Greenplum6.9集群安装文档
    Java实现线程间通信方式
    计算机存储管理方式
    greenplum6.9踩坑总结
    Linux 内核参数Overcommit_memory(最近生产中Airflow和Greenplum有被这个参数坑到......)
    Airflow概念
    airflow安装文档
    基于Docker进行Zookeeper集群的安装
  • 原文地址:https://www.cnblogs.com/majestyking/p/12382053.html
Copyright © 2011-2022 走看看