Java基础——封装

最近学习Java面向对象方面的知识点,一直没时间更新博客,因为这块的知识点真的蛮绕的。一个知识点一个知识点的往外冒,而且对于我这个初学者来说区分构造器和方法就花费了一整天的时间。现在准备再重新过一遍知识点。

先背下来一个理念:

面向对象程序设计是将数据放在第一位的,然后再考虑操作数据的方法。

之前,再学习Java的优越性的时候,我们知道了Java是一种面向对象设计的程序设计语言。那到底什么是面向对象程序设计呢?要弄懂它,首先我们简单了解一下另一种程序设计。

一、面向过程程序设计:

面向过程程序设计就是自顶向下顺序执行,逐步求精;其程序结构是按照功能划分为若干个基本板块,这些板块形成一个树状结构;各模块之间的关系尽可能的简单,在功能上相对独立;每一板块内部均是由顺序、选择和循环三种基本结构组成的;其板块化实现的具体方法是使用与子程序。程序流程在写程序时就已决定。

(这个概念是我在学习面向对象时在网上找的,我把它和面向对象程序设计的概念抄在一张白纸上,其实我也不知道啥是面向过程程序设计,但是,当我学完一遍面向对象和类之后,再回来看这个概念时,是有收获的。没学过面向过程也不敢多言,仅仅学了一遍面向对象更不敢多加评论了。依照我的理解就是面向过程就像把某件事情的所有工作流程都弄成环环相扣的了,牵一发而动全身。而面向对象呢,它很聪明,它像一个制造大型机械的厂家,零件啥的它不一定都自己弄,但是它可以用尽办法去拼装(当然,拼装你也要遵循人家制定的规则),这样的好处在于,想改那块都不用担心整个工程跟着受牵连,尤其是在客户端那块。)

二、面向对象程序设计:

面向对象程序设计简称OOP,它是当今主流的程序设计范例,它已经取代了20世纪7年代的“结构化”过程化程序设计开发技术。面向对象就是把数据及对数据的操作方法放在一起,作为一个互相依存的整体,我们就叫它对象。对同类对象抽象出其共性,就形成了类。类中的大多数数据只能用于本类的方法进行处理。类通过一个简单的外部接口与外界发生关系,对象与对象之间通过消息进行沟通。程序流程由用户使用中决定。Java是完全面向对象的,必须熟悉OOP才能够编写Java程序。

(图)演示面向对象程序设计与面向过程程序设计的不同

下面这句话很重要:

面向对象的程序是由对象组成的,每个对象包含对用户公开的特定功能部分和隐藏的实现部分。(这句话真的是太重要了,以后学习单例、封装、抽象类、接口的时候,就能体会的到了!)

三、类

类(class)是构造对象的模版或蓝图。由类 构造(construct)对象的过程成为创建类的实例(instance)。

在学习这里的时候,不免会有些惊慌,那么多类都需要记住啊?自己还要创建类?自己创建的类里面的内容能想全面吗?种种疑惑在心里挥之不去。其实啊,用Java编写的所有代码多位于某个类的内部。标准的Java库提供了几千类,可以用于用户界面设计、日期、日历和网络程序设计。尽管如此,我们在弄自己的项目时,也是需要根据具体情况的不同进行增加、删除和改动的。

四、封装

封装(encapsulation,有时候被成为数据隐藏),看视频课,他们把封装形容问get、set方法。从形式上看,封装不过是将数据和行为组合在一个包中,并对对象的使用者隐藏了数据的实现方式。

对象中的数据称为实例域(instance field),操作数据的过程称作方法(method)。对于每个特定的类实例(对象)都有一组特定的实例域值。这些值的集合就是这个对象的当前状态(state)。

下面这句话很重要,背下来:

实现封装的关键在于绝对不能让类中的方法直接的访问其他类的实例域。程序仅通过对象的方法与对象的数据进行交互。

封装给对象赋予了‘黑盒“特征,这是提高重用性和可靠性的关键。这意味着一个类可以全面地改变存储数据的方式,只要仍旧使用同样的方法操作数据,其他对象就不会知道或介意所发生的变化。

// 这句话是啥意思?就是说如果你哪天有需求想要定义一个Java的类,就不用担心其他的类会受到你的干扰了,你可以通过扩展一个类来建立一个你需要的新类。别忘了,实际上,在Java中所有的类都源自于一个Object。以后,我会继续介绍Object。

====封装的过程:

1.封装是将属性私有化(private);

2.你要提供get/set方法(get/set不一定都提出来,具体看你自己的需求。如果你不想让别人得到,就不提供get;如果你不想让别人设置,你就拒绝提供set。)

====访问符权限:

访问符 本类中 本包中 本包子类中 外包类 外包子类
public(常用) 可以访问 可以访问 可以访问 可以访问 可以访问
protected 可以访问 可以访问 可以访问 不可以访问 可以访问
缺省 可以访问 可以访问 可以访问 不可以访问 不可以访问
private(常用) 可以访问 不可以访问 不可以访问 不可以访问 不可以访问

代码示例:

1 public class XiaoNanHai{
2 private int age;
3 public void setAge(int age){
4 if(age>=15&&age<=35)
5 this.age=age;}else{
6 System.err.println"你输入的年龄不在指定范围内,请重新输入”);
7 }
8 }
时间: 2024-10-26 06:10:47

Java基础——封装的相关文章

Java基础——封装、继承、多态

Java基础--封装.继承.多态 --小实例快速成长 抽象: 1.目的:将复杂的东西简单化,将繁乱的内容有序化. 2.过程:对相同.相似的东西合而为一,对不同的内容进行归门别类. 3.结果:类.接口. 封装: 1.目的:化零为整,将零散的内容进行归属,进行权限控制. 2.过程:将某对象的属性.方法(功能)统一到其名下,并分别设置.适当的权限进行控制管理. 3.结果:对象,接口. 继承: 1.求大同存小异:在一个系列内,大部分都有的内容,就划归父类:子类将父类的内容继承过来,可以有自身的一些发展和

Java基础—封装

封装是面向对象的核心特征之一,它提供了一种信息隐藏技术.类的包装包含两层含义:一是将数据和对数据的操作组合起来构成类,类是一个不可分割的独立单位:二是类中既要提供与外部联系的接口,又要尽可能隐藏类的实现细节.封装性为软件提供了一种模块化的设计机制,设计者提供标准化的类模块,使用者根据实际需求选择所需的类模块,通过组装模块实现大型软件系统.各模块之间通过接口衔接和协同工作. 类的设计者和使用者考虑问题的角度不同,设计者需要考虑如何定义类中的成员变量和方法,如何实际其访问权限问题.类的使用者只需要知

java基础面向对象之封装

java基础面向对象之封装 2017-01-15 封装 1)封装性就是保证类内部被外部类不可见 2)所有属性都必须使用private关键字声明 3)封转后的属性如果要被外部所访问就必须实现set和get方法 例如: 使用了private声明的属性只有在自己的类是可见的 1 class Book{ 2 private String title ; //使用private声明的属性 3 private int price ; 4 } 5 public class PrivateDemo1 { 6 p

Java基础04 封装与接口(转载)

数据成员和方法都是同时开放给内部和外部的.在对象内部,我们利用this来调用对象的数据成员和方法.在对象外部,比如当我们在另一个类中调用对象的时,可以使用 对象.数据成员 和 对象.方法() 来调用对象的数据成员和方法. 我们将要封装(encapsulation)对象的成员(成员包括数据成员和方法),从而只允许从外部调用部分的成员.利用封装,我们可以提高对象的易用性和安全性. 封装与接口 封装(encapsulation)是计算机常见的术语,即保留有限的外部接口(interface),隐藏具体实

JAVA基础汇总及例题详解

java语言的一个核心: jdk, java development kits---面向开发人员 jre, java Runtime Environment---服务器上 java虚拟机---(以字节码为指令的CPU)---*.class java编译器-->字节码-->类加载器进行验证-->虚拟机运行 垃圾回收机制 public class ...{ int a = 1; } c/c++垃圾回收由程序员去运行 java编程语言(一门纯面向对象)的特点: 1, 面向对象  封装  继承

java 基础(二)

java 基础(二)java 基础(二) 2016-2-1 by Damon 61. 编写多线程程序有几种实现方式 Java 5以前实现多线程有两种实现方法:一种是继承Thread类:另一种是实现Runnable接口.两种方式都要通过重写run()方法来定义线程的行为,推荐使用后者,因为Java中的继承是单继承,一个类有一个父类,如果继承了Thread类就无法再继承其他类了,显然使用Runnable接口更为灵活. 补充:Java 5以后创建线程还有第三种方式:实现Callable接口,该接口中的

Java基础和面向对象

Java基础和面向对象 一.数据类型和运算符 标识符 组成:字母.数字.下划线.$ 首字母:不能是数字 见名知义 不能是关键字(48个) 正确的:name.name123.age._name.$name 错误的:1name.public.123.na%me 标识符主要给一个元素起名字,需要符合起名字的以上4种规则.比如说,类的名字:首字母大写:变量名称:小写:方法名称:驼峰命名:数组名称.接口名称.集合名称. //你定义为汉字也可以,不过不推荐,因为国际语言以English为主.为了面向世界,使

Java基础重点指南

Java基础重点指南 每个人都有自己的学习方法,下面是我学完Java后总结的一些要点: 一:(了解)Java诞生于1995年,由Sun公司开发.它把源代码编译成“中间码”,然后通过“Java虚拟机”把中间码“翻译”成机器码,再在本机上运行.Java有3个版本(Java SE,Java EE,Java ME),SE用于桌面程序开发,也是Java基础,EE用于企业式开发(如网站等),ME用于嵌入式开发(如掌上电脑,移动通讯开发等).通过 Java 可以做很多,但前提是要深入学习. 二:Java 编译

Java基础】并发 - 多线程

Java基础]并发 - 多线程 分类: Java2014-05-03 23:56 275人阅读 评论(0) 收藏 举报 Java 目录(?)[+] 介绍 Java多线程 多线程任务执行 大多数并发应用程序时围绕执行任务(task)进行管理的:所谓任务就是抽象的,离散的工作单元. 围绕执行任务来管理应用程序时,第一步是要指明一个清晰的任务边界.大多数应用服务器程序都选择了下面这个自然的任务辩解:单独的客户请求: 任务时逻辑上的单元: 任务 Runnable 表示一个任务单元(java.lang)