面向对象5——封装和隐藏

。面向对象三大特性:封装、继承、多态

封装

1.定义

。将对象的状态信息隐藏在对象内部,不允许外部程序直接访问对象内部信息;通过该类所提供的方法来实现对内部信息的操作和访问

2.目的

。隐藏类的实现细节

。让使用者只能通过实现预定的方法来访问数据,从而可以在该方法中加入逻辑控制,限制对成员变量的不合理访问

。可进行数据检查,从而奥正对象信息的完整性

。便于修改,提高代码的可维护性

3.实现

。将对象的成员变量和实现隐藏起来,不允许外部直接访问

。把方法暴露出来,让方法控制这些成员变量进行安全访问的访问和操作

。即隐藏该隐藏的,暴露该暴露的

使用访问控制符

1.private:当前类访问权限

。若类里的成员(成员变量、方法、构造器等),使用private控制符修饰,则该成员只能被当前类内部访问

。使用private修饰成员使得该成员与类内部隐藏

2.default:包访问权限

。默认访问权限

。类的成员(成员变量、方法、构造器等)或外部的类不使用任何访问控制符为包访问权限

3.protected:子类访问权限

。protected修饰的成员可以被同包中的其他类访问,也可以被不同包中的子类访问

。是一个protected修饰一个方法通常希望其子类重写该方法

4.public:公共访问权限

。能够被同包、不同包的所有类访问

5.

。对于内部类,可使用控制符修饰

。对于外部类,只能是两种访问控制级别:public、默认

。。外部类不能使用private和protected修饰

。。public修饰的外部类可被所有类修饰

。。不使用访问控制符修饰(default)的外部类只能被同一包中地其他类使用、

6.

。若一个java源文件里定义的所有类没有使用public修饰,则该java源文件名可以是一切合法的文件名

。若java源文件例定义了一个public修饰的类,则该源文件名必须与public修饰的类的类名相同

7.例

。限定以一个Control类

。私有成员变量不能被其他类访问

。结果

package、import和import static

1.package:包

。引入包(package)机制,提供类的多层命名空间

。包解决类的命名冲突、类文件管理等问题

。Java将一组功能相关的类放在同一个package下,从而组成逻辑上的类库单元

。package packageName;指定类的所在包

2.import:关键字

。import可以向某个文件导入指定包层次下某个类或全部类

。import出现在package语句之后,类定义之前

3.import static

。导入指定类的某个静态成员变量、方法或全部的静态变量

、方法

。语句

。。导入某个静态成员变量、方法

Import static package.subpackage…ClassName.fieldName|methodName;

。。导入指定类的全部静态成员变量或方法

import static packa.subpackage…ClassName.*;

4.Java常用包

。java.lang:Java语言核心类(String、Math、System、Thread…);无需import语句导入,系统自动导入

。java.util:包含Java大量工具类/接口和集合框类/接口(Arrays、List、Set…)

。java.net:包含一些java网络编程相关的类/接口

。java.io:包含java输入输出编程先关的类/接口

。java.text:包含一些java格式化相关的类

。java.sql:包含java进行JDBC数据库编程相关类/接口

。java.awt:包含抽象串口工具集的相关类/接口,主要用于构件图形用户界面(GUI)程序

。java.swing:包含Swing图形用户界面编程的相关类/接口,可用于构件平台无关的GUI程序

原文地址:https://www.cnblogs.com/Demetris/p/9151714.html

时间: 2024-08-01 05:36:40

面向对象5——封装和隐藏的相关文章

面向对象的特征一:封装与隐藏

* 面向对象的特征一:封装与隐藏 3w: what? why? how? * * 1.问题的引入? * 我们在创建了一个类的对象以后,通过"对象.属性"的方式,可以给对象的属性赋值.对此属性的赋值,是限制的,比如:数据类型和 * 数据类型储值范围的限制.但是,在实际问题中,还通过需要额外的限制.同时这些额外的限制,不可能在属性的声明中加上限制逻辑. * 那么,我们只能考虑通过方法,对属性的赋值进行额外的限制.同时,我们必须禁止再直接通过"对象.属性"的方式,对属性进

面向对象----信息的封装和隐藏

信息的封装和隐藏 信息封装和隐藏的必要性 使用者对类内部定义的属性(对象的成员变量)的直接操作会导致数据的错误.混乱或安全性问题.(version1) 1 public class Animal { 2 public int legs; 3 public void eat(){ 4 System.out.println("Eating."); 5 } 6 public void move(){ 7 System.out.println("Moving."); 8 }

2、C#面向对象:封装、继承、多态、String、集合、文件(上)

面向对象封装 一.面向对象概念 面向过程:面向的是完成一件事情的过程,强调的是完成这件事情的动作. 面向对象:找个对象帮你完成这件事情. 二.面向对象封装 把方法进行封装,隐藏实现细节,外部直接调用. 打包,便于管理,为了解决大型项目的维护与管理. 三.什么是类? 将相同的属性和相同方法的对象进行封装,抽象出 “类”,用来确定对象具有的属性和方法. 类.对象关系:人是类,张三是人类的对象. 类是抽象的,对象是具体的.对象可以叫做类的实例,类是不站内存的,对象才占内存. 字段是类的状态,方法是类执

面向对象之封装和继承

面向对象的三大特征:封装.继承.多态. 面向对象编程之封装: 封装就是把对象的属性和行为结合成一个独立的相同单位,并尽可能隐蔽对象的内部细节 有一个最大的优点:信息隐蔽,封装即隐藏. PHP 中通过将数据封装.声明为私有的(private),再提供一个或多个公开的( public)方法实现对该属性的操作,以实现下述目的: 隐藏一个类的实现细节: 防止对封装数据的未经授权的访问.使用者只能通过事先定制好的方法来访问数据,可以方便地加入控制逻辑,限制对属性的不合理操作: 有利于保证数据的完整性: 便

面向对象之封装,继承

面向对象的主要特征为封装,继承和多肽. 封装就是把对象的属性和行为结合成一个独立的相同单位,并尽可能隐蔽对象的内部细节.优点是信息隐蔽,封装即隐藏.它要求使对象以外的部分不能随意存取对象的内部数据(属性),从而有效的避免了外部错误对它的"交叉感染",使软件错误能够局部化,大大减少查错和排错的难度. 继承是面向对象最重要的特点之一,就是可以实现对类的复用. 通过"继承"一个现有的类,可以使用已经定义的类中的方法和属性. 继承而产生的类叫做子类. 被继承的类,叫做父类,

面向对象的封装性和多态性

面向对象之封装性: 1.继承要符合is-a的关系.即"子类is a 父类"——子类是父类.如:卡车是汽车,卡车is a 汽车. 2.父类中如果用Protected修饰符,表示只允许其子类访问,而不允许其他非子类访问: 父类中如果用private修饰符,子类是不能访问的. 3.除了构造方法不能被子类继承外,其他都可以直接被继承.可以用base关键字调用父类的构造函数:语法如下 :base(参数变量名) 使用base还可以调用父类的属性和方法. 注意:子类构造函数中已经定义了这些参数,在b

Java面向对象的封装

封装是Java面向对象的三大特性之一,通常我们是通过包管理机制同时对类进行封装,隐藏其内部实现细节,通常开发中不允许直接操作类中的成员属性,所以属性一般设置为私有权限private,类中一般会给出一些公共方法来让使用者通过特定方法读取或者操作里面的数据,避免误操作从而保证了数据的安全. 封装步骤一般分为3步,第一步首先修改属性的可见性,即将其设置为private:第二步创建getter/setter方法,用于获取/设置属性值,就是用来读写属性,eclipse中也提供了直接生成变量操作方法的菜单,

黑马程序员——Java基础---面向对象之封装

------<a href="http://www.itheima.com" target="blank">Java培训.Android培训.iOS培训..Net培训</a>.期待与您交流! ------- 面向对象之封装      一:封装概述 是指隐藏对象的属性和实现细节,仅对外提供公共访问方式. 好处: (1)将变化隔离(内部怎样变化外部是不需要知道的,只调用即可) (2)便于使用(我们不用知道内部构造直接使用就可以) (3)提高重用性

Java学习记录(补充三:面向对象的封装和继承)

面向对象的封装package day7; //面向对象的封装 public class Employee { String name = "zhangsan"; private int age; //多个方法重载 public Employee(){ } public Employee(String name,int age){ } public Employee(int age,String name){ } //可以在方法里修改不能访问的属性 public int getAge()