java封装基础详解
java封装基础详解
java的封装性即是信息隐藏,把对象的属性和行为结合成一个相同的独立单体,并尽可能地隐藏对象的内部细节。
封装的特性是对属性来讲的。
封装的目标就是要实现软件部件的"高内聚,低耦合",防止程序相互依赖带来的变动影响。
高内聚(就是类的内部数据操作细节自己完成,不允许外部干涉)。
低耦合(仅暴露少量的方法给外部使用)。
在面向对象的编程语言中,对象是封装的基本单位,面向对象的封装比传统语言的封装更清晰,有力。
注:一般来说,只要是属性,就必须封装,java中通过将属性声明为私有的(private),再通过公共的(public),以及getter和setter方法设置和获取,实现对属性的操作。
那么信息隐藏是指:禁止直接访问一个对象中数据的实际表示,而应通过操作接口来访问。
属性私有,get/set
简单的代码示例
首先我们对student这个类应有的属性进行私有,即private
package oop.Demo05; public class Student {
//首先进行属性私有
private String name;
private int id;
private char sex;
//然后提供一些可以操作这个属性的方法
//提供一些private的get,set方法 //首先get获得这个数据
public String getName(){
return this.name;
}
//然后set给这个数据设置值
public void setName(String name){
this.name= name;
}
//alt+insert 快捷键生成get set方法
}然后我们找一个测试类进行调用
package oop1;
import oop.Demo05.Student;
public class Application02 {
public static void main(String[] args) {
Student s1 = new Student();
s1.setName("神经病");
System.out.println(s1.getName());
}
}
那么封装的意义:
/*1.封装可以提高程序的安全性
2.隐藏代码的实现细节性
3.可以统一接口
4.系统的可维护性增加
*/
B站视频狂神说java
java封装基础详解的更多相关文章
- java继承基础详解
		
java继承基础详解 继承是一种由已存在的类型创建一个或多个子类的机制,即在现有类的基础上构建子类. 在java中使用关键字extends表示继承关系. 基本语法结构: 访问控制符 class 子类名 ...
 - Java :内部类基础详解
		
可以将一个类的定义放在另一个类的定义内部,这就是内部类. 第一次见面 内部类我们从外面看是非常容易理解的,无非就是在一个类的内部在定义一个类. public class OuterClass { pr ...
 - Java多线程基础详解
		
基础概念进程进程是操作系统结构的基础:是一次程序的执行:是一个程序及其数据在处理机上顺序执行时所发生的活动.操作系统中,几乎所有运行中的任务对应一条进程(Process).一个程序进入内存运行,即变成 ...
 - Java 异常基础详解
		
目录 1. Java 中的异常 1.1 什么是异常? 1.2 什么是异常处理? 1.2.1 异常处理的优势 1.3 Java 异常类的层次结构 1.4 异常类型 1.5 检查和未检查异常之间的区别 1 ...
 - Java 接口基础详解
		
目录 Java接口示例 实现一个接口 接口实例 实现多个接口 方法签名重叠 接口变量 接口方法 接口默认方法 接口与继承 继承与默认方法 接口与多态性 在Java中,接口是一个抽象类型,有点类似于类, ...
 - 浅析Java 数组-基础详解
		
什么是数组:数组对于每一门编程语言来说都是重要的数据结构之一,当然不同语言对数组的实现及处理也不尽相同. Java 数组:用来存储固定大小的同类型元素. 一 声明.创建,初始化Java 数组 写在前面 ...
 - MP实战系列(十一)之封装方法详解(续一)
		
之前写的封装方法详解,比较简要. 今天我主要讲增加和删除及其修改.查的话得单独再详讲. 增删改查,无论是Java或者C#等等,凡是对数据库操作的都离不开这四个. 一.增加方法讲解 MyBatis Pl ...
 - 最强Java并发编程详解:知识点梳理,BAT面试题等
		
本文原创更多内容可以参考: Java 全栈知识体系.如需转载请说明原处. 知识体系系统性梳理 Java 并发之基础 A. Java进阶 - Java 并发之基础:首先全局的了解并发的知识体系,同时了解 ...
 - Java 字符串格式化详解
		
Java 字符串格式化详解 版权声明:本文为博主原创文章,未经博主允许不得转载. 微博:厉圣杰 文中如有纰漏,欢迎大家留言指出. 在 Java 的 String 类中,可以使用 format() 方法 ...
 
随机推荐
- 「10.10」神炎皇(欧拉函数)·降雷皇(线段树,DP)·幻魔皇
			
A. 神炎皇 很好的一道题,可能第一次在考场上遇到欧拉函数 题意:对于一个整数对 $(a,b)$,若满足 $a\times b\leq n$且$a+b$是$a\times b$的因子, 则称为神奇的数 ...
 - NOIP模拟测试29「爬山·学数数·七十和十七」
			
爬山题解不想写了 学数数 离散化然后找到以每一个值为最大值的连续子段有多少个,然后开个桶维护 那么怎么找以每一个值为最大值的连续子段个数 方法1(我的极笨的方法) 考试时我的丑陋思路, 定义极左值为左 ...
 - git 认证问题之一的解决 : http ssh 互换
			
场景 使用git 我们经常会遇到 认证失败的情况,有时候确实是搞错了用户名或者密码,还有的时候及时用户名密码用对了也还是认证失败. 此时, 就有可能是下面这个情况. 没有配置 ssh 秘钥, 而用了 ...
 - 第三方模块npm
			
npm介绍 npm 全名 node package manager node包管理工具,增删查改 如果npm操作太慢,可以安装npm镜像 npm的下载 比如全局下载一个jquery文件,全局下载的 ...
 - 飞扬起舞,基于.Net Cli亲手打造.Net Core团队的项目脚手架
			
什么是脚手架? Scaffolding is a meta-programming method of building database-backed software applications. ...
 - mysql_my.cnf文件详解
			
以下是 my.cnf 配置文件参数解释:#*** client options 相关选项 ***##以下选项会被MySQL客户端应用读取.注意只有MySQL附带的客户端应用程序保证可以读取这段内容.如 ...
 - 12-1 MySQL数据库备份(分库)
			
#!/bin/bash source /etc/profile DATE="$(date +%F_%H-%M-%S)" DB_IP="172.16.1.122" ...
 - 32、JavaScript介绍
			
32.1.JavaScript概述: 1.JavaScript的历史: 1992年Nombas开发出C-minus-minus(C--)的嵌入式脚本语言(最初绑定在CEnvi软件中),后将其改名Scr ...
 - MyBatis温故而知新-底层运行原理
			
准备工作 public class MainClass { public static void main(String[] args) throws Exception { String resou ...
 - 详解 MD5 信息摘要算法
			
对于软件研发人员来说 MD5 不是一个陌生的词汇,平时的软件研发中,经常使用 MD5 校验消息是否被篡改.验证文件完整性,甚至将MD5当作加密算法使用. MD5虽不陌生,但不是所有研发人员都了解其算法 ...