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();
        }
    }
  • 相关阅读:
    css之vertical-align属性
    特殊方法,类之间的关系,分页
    内置函数lambda,sorted,filter,map,函数递归,递归实现文件的遍历,计算文件夹的大小,二分法查找
    生成器函数,推导式
    函数名,函数的闭包和迭代器
    初级简单逻辑完成BMI指数函数程序
    函数
    文件操作
    pycharmde 安装激活
    列表的join方法,类方法formkeys,删除,集合,深浅拷贝赋值,冒泡排序
  • 原文地址:https://www.cnblogs.com/majestyking/p/12382053.html
Copyright © 2011-2022 走看看