首页 > 其他分享 >封装详解

封装详解

时间:2024-01-13 22:38:47浏览次数:25  
标签:封装 name age public 详解 oop Student s1

概念

该露的露,该藏的藏

  • 我们程序设计要追求“高内聚,低耦合”。高内聚就是类的内部数据操作细节自己完成,不允许外部干涉;低耦合:仅暴露少量的方法给外部使用。

封装(数据的隐藏)

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

记住这句话就够了:属性私有,get/set

println实现了方法的重载

意义

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

  2. 隐藏代码的实现细节

  3. 统一接口

  4. 系统可维护性增加

快捷键

输出内容.sout

 

 

alt+insert,选中Getter and Setter

 

选中要生成的选项,点击OK

 

方法自动生成

 

代码

//Java-零基础学习/src/oop/demo04/Student
package oop.demo04;

public class Student {

   //属性私有
   private String name;//名字
   private int id;//学号
   private char sex;//性别
   private int age;//年龄

   //提供一些可以操作这个属性的方法!
   //提供一些public的get、set方法

   //get 获得这个数据
   public String getName() {
       return this.name;
  }

   //set 给这个数据设置值
   public void setName(String name) {
       this.name = name;
  }

   public int getAge() {
       return age;
  }

   public void setAge(int age) {
       if (age > 120 || age < 0) {//不合法
           this.age = 3;
      } else {
           this.age = age;
      }
  }
}

/*
public static void main(String[] args) {
       Student s1 = new Student();

       s1.setName("秦疆");

       //方法名,参数列表
       System.out.println(s1.getName());

       s1.setAge(999);//不合法的
       System.out.println(s1.getAge());
   }
*/
//Java-零基础学习/src/oop/Application
package oop;

import oop.demo03.Pet;
import oop.demo04.Student;

//一个项目应该只存在一个main方法
public class Application {
   public static void main(String[] args) {
       Student s1 = new Student();

       s1.setName("秦疆");

       //方法名,参数列表
       System.out.println(s1.getName());

       s1.setAge(999);//不合法的
       System.out.println(s1.getAge());
  }
}
 

标签:封装,name,age,public,详解,oop,Student,s1
From: https://www.cnblogs.com/poiuyjoey/p/17963109

相关文章

  • Super详解
    super注意点super调用父类的构造方法,必须在构造方法的第一个super必须只能出现在子类的方法或者构造方法中!super和this不能同时调用构造方法!Vsthis代表的对象不同:this:本身调用者这个对象super:代表父类对象的引用前提:this:没有继承也可以使用super:只能......
  • static关键字详解
    注意通过final修饰的类,它就不能被继承,没有子类 举例Student.score会报错 代码//Java-零基础学习/src/oop/demo07/Studentpackageoop.demo07;​importoop.demo06.Person;​//staticpublicclassStudentextendsPerson{​  privatestaticintage;//静态的变......
  • 构造器详解
    创建与初始化对象类中的构造器也称为构造方法,是及逆行创建对象的时候必须要调用的。并且构造器有以下两个特点:必须和类的名字相同必须没有返回类型,也不能写void构造器必须要掌握查看class文件找到ProjectStructure 选择Modules 点击AddContentRoot 选......
  • Eloquent 模型使用详解 Has One Through 远程一对一
    远程一对一也好,经过型,穿过型一对一也好,都能表示这种模型的关联方式:一种非直接的关系定义这里使用官方的例子:......
  • 从零开始的源码搭建:详解连锁餐饮行业中的点餐小程序开发
    时下,点餐小程序成为了许多餐饮企业引入的一种创新工具,不仅方便了顾客的用餐体验,同时也提高了餐厅的运营效率。本文将详细探讨如何从零开始搭建一个源码,并深入解析连锁餐饮行业中的点餐小程序开发过程。 一、需求分析与规划在开始源码搭建之前,首先需要明确点餐小程序的具体需求。这......
  • Go标准库:Go template用法详解
    本文只介绍template的语法和用法,关于template包的函数、方法、template的结构和原理,见:深入剖析Gotemplate。入门示例以下为test.html文件的内容,里面使用了一个template语法{{.}}。<!DOCTYPEhtml><html> <head> <metahttp-equiv="Content-Type"content="text/html;char......
  • 详解Linuxrc、rcS、rc.local、Profile
    /Linuxrc执行init进程初始化文件。主要工作是把已安装根文件系统中的/etc安装为ramfs,并拷贝/mnt/etc/目录下所有文件到/etc,这里存放系统启动后的许多特殊文件;接着Linuxrc重新构建文件分配表inittab;之后执行系统初始化进程/sbin/init。/mnt/etc/init.d/rcS完成各个文件系统的......
  • 详解Java信号量-Semaphore
    第1章:引言大家好,我是小黑。今天,咱们一起来深入探讨一下Semaphore。在Java中,正确地管理并发是一件既挑战又有趣的事情。当谈到并发控制,大家可能首先想到的是synchronized关键字或者是ReentrantLock。但其实,Java还提供了一个非常强大的工具,就是Semaphore。Semaphore,直译过来就是......
  • Java日期时间处理详解
    Java中SimpleDateFormat、LocalDateTime和DateTimeFormatter的区别及使用在Java的世界里,处理日期和时间是常见的任务。尤其在Java8之前,SimpleDateFormat是处理日期和时间的主要方式。然而,Java8引入了新的日期时间API,其中LocalDateTime和DateTimeFormatter成为了新的选择。本文......
  • 免费APP分发,支持应用合并、内测分发、扫码下载,下载量安装量统计,版本记录和应用在线封
    免费APP内测分发托管平台,支持应用合并、内测分发、扫码下载,下载量安装量统计,版本记录和应用在线封装打包app应用分发?应用分发也叫APP分发,其主要功能是方便APP的快速安装测试和推广那么分发App选择什么平台最好呢?这个主要是看App处于什么阶段。看看是处于应用测试阶段还是处于测......