zoukankan      html  css  js  c++  java
  • java面向对象-封装

    封装性在Java当中的体现

    1. 方法就是一种封装
      封装就是将一些信息隐藏起来,对外界不可见,方便调用。
    public class Demo03ArrayLength {
        public static void main(String[] args) {
            int [] arrayB = {1,2,5,5,74,65,23,12,45,98};
            int max = getMax(arrayB);
            System.out.println(max);
        }
        // 封装一个方法,传入一个数组,返回最大值。
        public static int getMax(int[] arrayB){
            int max = arrayB[0];
            for (int i = 1; i < arrayB.length; i++) {
                if (max < arrayB[i]){
                    max = arrayB[i];
                }
            }
            return max;
        }
    }
    
    
    1. 关键字private也是一种封装
      private的作用:提高代码的安全性。
      在定义一个成员变量的时候,有些超出变量的不符合实际的值需要被过滤掉。
      例如:年龄被设置为负数,这个时候需要设置一道防护墙进行防护,让成员变量无法直接被访问。
    public class Person {
        String name;
        int age;
        public void method(){
            System.out.println("姓名:" + name + "年龄为: " + age);
        }
    }
    
    public class PersonDemo {
        public static void main(String[] args) {
            Person people = new Person();
            people.name = "李四" ;
            people.age = -20;
            //不合理的数值设置
            people.method(); //姓名:李四年龄为: -20  
        }
    }
    

    为了防止这种不合理的数值设置,声明private关键字,进行间接设置年龄,从未可以达到在方法中进行判断。

    public class Person {
        String name;
        private int age;
        // 使用setXXX进行设置,但是不能有返回值
        public void setAge(int num){
            // 进行判断过滤掉不合理数值   
            if (num < 0 || num > 100){
                System.out.println("数值设置不合理");
            }else {
                age = num;
            }
        }
        // 使用getXXX进行读取,不能有参数,必须有返回值
        public int getAge(){
            return age;
        }
        public void method(){
            System.out.println("姓名:" + name + "年龄为: " + age);
        }
    }
    

    特别声明:
    对于布尔型类型,进行private声明的时候,setXXX规则不变,getter的时候要用isXXX而不能使用getXXX返回。

  • 相关阅读:
    团队项目 NABCD介绍
    java web项目通过外网ip访问
    第七周总结
    全球疫情可视化展示
    第六周总结
    软工小队——团队介绍
    Android端疫情数据统计与现实——Android连接Mysql
    android SDK SDK Manager.exe 无法打开,一闪而过最终解决办法 (转)
    第五周总结
    Java代码编写规范(转)
  • 原文地址:https://www.cnblogs.com/lishi-jie/p/11697447.html
Copyright © 2011-2022 走看看