JAVA面向对象之封装

封装是JAVA三大特性之一,其他两个分别是多态和继承,这一篇就为大家介绍一下JAVA的封装。

一、包

java要求源程序文件名与主类的类名相同,因此若要将多个类放在一起时(保存在同一个目录中),就要保证各类名不能重复。但是在实际开发中,一个软件系统可能包含成百上千个类,如果这些文件都保存在一个目录下,类名冲突的可能性就很大。另外,在软件设计过程中,一个软件可能会包含多个模块,把所有模块放在一起也不易于管理。
为了更好的管理这些类,JAVA中引用了包(package)的概念来管理类。

1、包的概念

包是java语言提供的一种区别类名的机制,是类的组织方法。在物理存储时包就对应一个文件夹,包中还可以有包,称为等级。同一个包中的类名不允许重复,不同包中的类名可以相同,在引用某个包中的某个类时,不仅要指定类名,还要指定包名,通过“.”来表示包的层次。

2、创建包

若要建立一个包,只要以package语句作为源文件的第一条语句,指明该文件中定义的类所在的包,格式为:
package 包名1[.包名2[.包名3]...];
经过package的声明之后,则在该文件内的所有类或接口都被纳入相同的包中

3、引用包

要在当前类中引用不同包中别的类,首先必须要先将该类引用过来,否则编译出错。如果要使用别的包中的类,必须在源程序中用import语句导入所需包,格式为:
import 包名1[.包名2[.包名3]...].类名|*;
java编译器为所有程序自动的导入包java.lang,因此该包中的类在使用时无须再额外的导入。

二、访问控制权

在一个应用系统中会有一个或多个甚至很多个模块,包含成百上千个类。应用系统要完成指定的功能,那么不同的模块间需要协同工作,但是某些成员变量或方法不希望被调用者使用,这样就需要成员进行控制权的处理。java中关于访问权限控制有4个关键字进行修饰,见下表:

同一个类中 同一个包中 不同包中的子类 不同包中的非子类
private
default(无修饰字)
protected
public
  • public:任何其他类,对象只要可以看到这个类,那么他就可以存取变量的数据或使用方法。
  • default:在同一个程序包中出现的类才可以直接使用它的数据和方法。如果父类中有方法或属性是friendly类型,则不同包中的子类将不能继承该方法。
  • protected:同一类、同一包可以使用。不同包想要使用必须是该类的子类。
  • private:不允许任何其他类存取和调用。

三、封装

在应用设计过程中,应尽量避免一个模块直接修改或操作另一个模块的数据,模块设计追求强内聚,弱耦合。这就是面向对象封装的特点。
封装就是将抽象得到的数据和行为相结合,形成一个有机的整体,也就是将数据与操作数据的源代码进行有机的结合,形成“类”。封装的目的就是增前安全性和简化编程,使用者不必了解具体的细节,只要通过外部接口和某一特定的访问权限来使用类的成员。封装的大致原则如下:
- 把尽可能多的东西藏起来,对外提供简洁的接口。
- 把所有的属性隐藏起来,不让外界直接对属性进行操作,使用getXXX()和setXXX()。

时间: 2024-08-04 03:08:40

JAVA面向对象之封装的相关文章

【Java面向对象学习】一张图搞定Java面向对象

刚开始学习Java的时候,一个人跌跌撞撞摸索着往前走,很多东西理解的也懵懵懂懂,后来实践的多了,才慢慢清楚:许多东西虽然很基础但是却很重要,是需要反复思考和加深理解的,[Java面向对象学习]一张图搞定Java面向对象,分享一些归纳总结后的技术干货,一张图能搞定的事,绝对不长篇大论. 大家都知道,Java面向对象是Java的一个核心,也是初学者的一个难点,所以我们从这里开始,Let's go ! Java面向对象 面向对象(Oriented Object) 是相对于面向过程而言的,过程其实就是函

JAVA学习(五):Java面向对象编程基础

Java面向对象编程基础 面向对象(Object oriented programming,OOP)技术是一种强有力的软件开发方法,它采用数据抽象与信息隐藏技术,来使软件开发简单化,以达到代码重用的目的. 1.OOP的3个特性(封装.继承和多态性) 封装是类的基础,指把类的相关实现细节隐藏起来,在类中将数据和实现操作的代码集中起来放在对象的内部,调用这些类时只需直接使用类预留的接口就可以了. 继承提供了子类自动拥有父类数据结构和方法的机制,它表示类之间的一种关系. 多态指使一个对象被看成另一个对

关于JAVA面向对象的问题

问题描述 关于JAVA面向对象的问题 在JAVA中,万事万物皆对象,现在我有一个问题:JAVA中的执行语句是对象吗?如果是,它的class是什么? 解决方案 施主,你着相了...你说的东西确实不是对象. 所有编程语言的基础都是过程.因为所有编程语言最终目的是 [去做一件事]. java就是以对象为单位封装了过程,过程可以看作是对象的动作,过程操作的数据可以看作对象的属性. Java中你只能通过对象来操作过程,这就是处处都是对象的真意. 那么,所有过程操作的数据都是对象吗?是的. 那么,操作对象数

java 面向对象面试集锦_java

java  面向对象:这里整理了面向对象的基础知识,帮助大家学习理解,希望能帮助到大家,这里是 根据公司面试资料整理的相关知识: Overload和Override的区别.Overloaded的方法是否可以改变返回值的类型? Overload是重载的意思,Override是覆盖的意思,也就是重写.重载Overload表示同一个类中可以有多个名称相同的方法,但这些方法的参数列表各不相同(即参数个数或类型不同). 重写Override表示子类中的方法可以与父类中的某个方法的名称和参数完全相同,通过子

Java面向对象的三大特征_java

java面向对象的三大特征:"封装.继承.多态".更多Java技术知识,请登陆疯狂软件教育官网.微信搜索微信号:疯狂软件,参加2015年优惠活动,有机会获得优惠劵和代金劵. 以本文为例,User类中的变量为私有变量,只能通过创建对象(此时构造方法自动调用)来赋值. 外界只能通过公有方法api()来访问User类. Admin类继承了User类,调用了其构造方法,还重写了method_1方法,增加了一个特有方法power(). User文件 public class User { /**

JavaSE学习总结(四)——Java面向对象十分钟入门

 面向对象编程(Object Oriented Programming,OOP)是一种计算机模拟人类的自然思维方式的编程架构技术,解决了传统结构化开发方法中客观世界描述工具与软件结构的不一致性问题.Java是一种纯面向对象的语言,与C语言不一样他是面向过程的语言.通俗说Java程序主要是由类组成的,而C是由函数组成的. 面向对象非常重要,恰当的使用面向对象会使我们开发的系统拥有"可复用"."可扩展"."可维护"的特点.面向对象的概念和应用已超越了

JAVA面向对象之对象和类

Java是一种面向对象的编程语言,面向对象在整个Java的学习中属于重中之重,从这一篇博客开始,将逐步为大家介绍Java面向对象的相关知识,这一偏将为大家介绍对象和类的概念以及如何定义类和创建对象. 一.对象和类的概念 1.对象 以一个人为例,对于人,我们可以从他所具有的特征和所具有的行为来进行分析. 特征:体重.身高.性别.年龄...... 行为:吃饭.睡觉.说话...... 上面的例子就是对现实世界中的具体事物进行的描述,这些具体的事务就是对像,比如一个人.一辆车.从以上的分析还可以看出,人

JAVA面向对象该怎样才能学好呢!

问题描述 JAVA面向对象里面的门禁系统的面向对象设计好难呀,该怎样才能学好呢,有什么好的方法吗? 解决方案 解决方案二:我也在学有同感顶一下

java面向对象(三)之抽象类,接口

java类 java类分为普通类和抽象类,接口,上一节我大概讲了java类的一般格式,今天将抽象类和接口.同时讲一下它们是怎样存储的. 最重要的是理解为什么要有抽象和接口,这样学下来你猜不会迷茫,才能更好的去使用,所以多看看我写的关于抽象类和接口的目的. 抽象类 目的 为了对代码更好的维护和重用. 解析: 抽象类往往用来表征对问题领域进行分析.设计中得出的抽象概念,是对一系列看上去不同,但是本质上相同的具体概念的抽象. 1.因为抽象类不能实例化对象,所以必须要有子类来实现它之后才能使用.这样就可