ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

java封装特性

2021-06-26 14:33:32  阅读:165  来源: 互联网

标签:封装 name student2 age 特性 new java student1 public


封装---面向对象三大特征性

该露的露,该藏的藏

  • 高内聚,就是类的内部数据操作细节自己来完成,不允许外部干涉

  • 低耦合,进暴露少量的方法给外部使用

封装de 定义和意义

  • 通常,应该禁止直接访问一个对象中数据的实际表示,而通过操作接口来访问,这成为信息隐藏

  • 意义

    • 提高程序的安全性,保护数据

    • 隐藏代码的实现细节。当然我们开发人员是上帝视角,肯定知道

    • 统一接口,所有对外提供的方法都是get / set,形成了规范

    • 提高了系统的可维护性

    //测试类
    package com.hxia.base.Demo_oop;

    public class Student2 {
       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) {
           if (age >0 || age < 110 || age ==110){
               this.age = age;
          }else if (age > 110){
               this.age = age;
               System.out.println("寿星");
          }else {
               this.age = 3;
          }
      }
    }
    //设置快捷键 Alt + Ins
    package com.hxia.base.Demo_oop;

    //一个项目应该只存在一个main方法
    public class Application { //Application应用
       public static void main(String[] args) {
    //       Student student1 = new Student();//括号不能漏掉
    //       Student student2 = new Student();//括号不能漏掉
    //       student1.name = "lee";
    //       student2.name = "zhang";
    //       student1.age = 21;
    //       student2.age = 22;
    //       student1.study();
    //       student2.study();
    //       Student1 student1 = new Student1("lee",18);//实例化对象时,自动调构造方法
    //       student1.study();
           Student2 student2 = new Student2();
           student2.setName("LEE");
           student2.setAge(18);
           String name = student2.getName();
           final int AGE = student2.getAge(); //返回一个常量被AGE接收
           System.out.println(name+"不断努力学习,一直努力学习,坚持努力学习");
           System.out.println("终于"+AGE+"岁的"+name+"如愿以偿的实现了自己的理想");

      }
    }
    //---------------------------------------------------------------------------
    /*
    变量本来就是引用的涵义
    a=10,a引用10,a在栈中,10在堆中,a全权代表10来出席活动,相当于替身吧

    ===========================================================================
    内存理解:
        字节码文件(编译后的文件)先在方法区,它所占的内存空间可以认为固定不变的
        栈放变量名(引用变量名指向真实的类对象【类就是一个模板】等等)和main()函数变量,理解为药引子
        堆放对象(万物皆对象:属性,方法-->调用的方法,数组)
    方法区 -->堆 -->栈:
        字节码 -->具体对象(静态属性即可变成成员变量、方法本身&包含main方法、数组本身等)-->引用变量(普通变量、函数名型变量、基本数据类型变量)
                   Pet p = new Pet()中p是引用变量,new Pet()才是具体对象
                   属性也是放在堆中,因为它一般是要通过来对象(也可用类对象的引用变量)来调用的
    注意:静态方法是和类一起加载的,所以可以直接通过类模板调用(不用new)
    引用类型与基本类型:
        引用类型即对象是通过引用来运行的
    */

     

  • 只要记住这几个字就ok了: 属性私有、get/set

标签:封装,name,student2,age,特性,new,java,student1,public
来源: https://www.cnblogs.com/Hxia/p/14934188.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有