「java面向对象封装」在面向对象编程中,类为什么要封装
本篇文章给大家谈谈java面向对象封装,以及在面向对象编程中,类为什么要封装对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
- 1、java中“封装”是什么?
- 2、java面向对象的特征有哪些方面
- 3、java面向对象程序设计的基本特征是
- 4、java面向对象的三要素是什么
- 5、在Java面向对象的编程当中的为什么要封装?什么叫封装?
java中“封装”是什么?
封装就是将字段get 跟set\x0d\x0a字段声明前用\x0d\x0aprivate String name //私有化\x0d\x0apublic String getName() {\x0d\x0areturn name;\x0d\x0a}\x0d\x0apublic void setName(String name) {\x0d\x0athis.name = name;\x0d\x0a}\x0d\x0a必须通过此类的get/set方法来访问\x0d\x0a这就是对数据得封装 \x0d\x0a面向对象之一还有继承,多态
java面向对象的特征有哪些方面
众所周知,Java是一种面向对象性的语言。而面向对象,Obeject Oriented,是一种编程术语。面向对象是当今软件开发方法的主流方法之一,他是把数据以及对数据的操作放在一起,作为一个相互依存的整体,就是我们所说的对象。那么Java面向对象的特征又是什么?下面就一起来看看Java面向对象的四大特征:
特征一:抽象
抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象不打算了解全部问题,而是选择其中的一部分,暂时不用部分细节。抽象包括两个方面:过程抽象;数据抽象。
特征二:继承
继承是一种连接类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法。对象的一个新类可以从现有的类中派生,这个过程称为类的继承。新类继承了原始类的特性,新类称为原始类的派生类(子类),而原始类称为新类的基类(父类)。派生类可以从它的基类那里继承方法和实例变量,并且派生类可以修改或者增加新的方法使之更适合特殊的需要。
特征三:封装
封装是指将客观事物抽象成类,每个类对自身的数据和方法实行保护。类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。
特征四:多态
多态是指允许不同类的对象对同一消息做出响应。多态包括参数化多态和包含多态。多态性语言具有灵活、抽象、行为共享、代码共享等优势,很好地解决了应用程序函数同名问题。Java中实现多态主要是方法的重载和方法的覆盖。
java面向对象程序设计的基本特征是
一、封装
封装是面向对象四大基本特性之一
二、抽象
抽象的概念则是为了保护基类和方法不被随意更改的特性,给予编程者在规则下修改方法的一种特性。
三、继承
继承特性在实际开发也是经常使用的特性。
四、多态
多态特性则是在编写类的时候,有些方法可以通过不同的参数完成,但是它又是同一种用途,所以方法名是一样的,而方法参数则是不同的。
java面向对象的三要素是什么
java中的面向对象的三大基本特征,不是三要素:【封装】、【继承】、【多态】
一、封装
对象要有一个明确的边界;边界的划分(对象各司其职、对象的粒度、对象的可重用性)
具体来说:
1.属性: 私有 private(提供set和get方法)
2.方法: 公开或私有public/private
3.方法声明 -- 公开
方法实现 -- 隐藏
实现改变时,对对象的使用者没有影响。
二、继承
共性放到父类,特性放到子类;子类,父类 -- 其实就是特殊 -- 一般
1.关键字: extends 例如:Dog extends Animal{}
2.java中一个类最多只能有一个直接的父类,即单继承(具有简单性、树形结构),
C++中是单继承
java中要实现多继承,通过接口来实现。
3.父类中所有属性和方法都能继承给子类;父类中的私有方法不能继承给子类。
4.java中的访问修饰符
访问修饰符
访问权限
继承
private 本类内部 不能继承
default 本类+同包 同包子类可以继承
protected 本类+同包+不同子包 可以继承
public 公开 可以继承
5.构造对象过程
(1)分配空间
(2)递归地构造父类对象
a. 父类 初始化属性
b. 父类 构造方法
(3)初始化属性
(4)调用构造方法
6.super
用法:
super() 调用父类的构造方法,只能出现在构造方法的第一行
super.方法名 super表示父类的对象,通过它去调用父类的方法
注意:在写类的时候,一定要写默认无参的构造方法,如果一个构造方法的
第一句既不是this(),也不是super()时,那么就会在这里隐含的调用
他的父类的无参的构造方法,即隐含的有super()。
三、多态
运行时多态。
子类的对象放在父类的引用中,例如 Animal a=new Dog,子类对象当父类对象来使用。
1.多态原则:
(1)对象类型不变
(2)只能用引用调用其引用类型中定义的方法
(3)运行时,根据对象的实际类型去找子类覆盖之后的方法
例子:
有Animal类中有eat()和sleep()两个方法,sleep()中睡8小时;子类Dog中有
eat()方法,sleep()方法中睡6小时,还有wangwang()方法。
现创建Animal a=new Dog(); 不能调用a.wangwang(),调用a.sleep()输出睡6小时。
2.对象的强制转换
格式: 引用 instanceof 类型
引用所指的对象是否与类相符,返回值boolean值。
用法:
Animal a=new Cat();
if(a instanceof Dog)
{
Dog d=(Dog)a;
d.wangwang();
}
说明:如果只有Dog d=(Dog)a;运行时错误,因为a是Cat而不是Dog (多态原则第一条)
3.多态的灵活变换
(1)用于参数列表上:
public void m(A a){} 可以用A类的任何子类对象作为参数
(2)用在返回值上:
public A m(){} 这个方法可能返回A类的任何子类对象
在Java面向对象的编程当中的为什么要封装?什么叫封装?
概念:所谓封装,就是通过定义类并且给类的属性和方法加上访问控制来抽象事物的本质特性.
这个意思:
封装就是定义一个类,然后给该类的 属性(成员变量) 和 方法 加上 访问控制修饰词(public,private,
protected,默认包访问权限),使得该类的属性和方法对于类外部来说,想可见的可见,不想可见的隐藏。
所以,通过封装这个手段,就抽象出来了事物的本质特性。
对上面进行进一步的解释:
什么叫抽象?比如拿 人类 来举例子,封装是一种手段,通过封装定义出来的这个类,和现实当中的人这个实体(对象),他们之间就是一种抽象,我们现实当中只存在一个一个的人(对象),人类只是一个概念性的东西,是我们人自己归纳总结出来的,我们知道人都长什么样,所以我们知道符合这个样子的就叫人,人的大脑总是习惯将事物分类,因此人类的概念就出现了,那么我们发现一个一个的人,都有眼睛鼻子嘴(属性),都能吃饭(方法),等等,这就是人这个事物的本质特性,然后我们得编程啊,人类的概念光在脑海中出现了还不行,还得体现到代码上,那么你想体现到代码上,也就是定义一个类,就要使用封装这个手段。
为什么要加上访问控制?
一是,有些东西是很关键很机密的,不想随便被使用,被改变,被访问。
二是,可能这个东西不是很关键机密,访问和改变也无所谓,但是,因为有些属性和方法,它们对于外部来说,是无关的没用的,但是对于我自己这个类来说,是必要的,因为可能在我自己这个类中要使用它们,这个时候,进行隐藏,不让外部看,好处就是,如果将这些不必要的内容也暴露给外部的话,那么在使用的时候,使用者会被迷惑,因为这个东西对他没用,但是又可以调用,访问,而且他又不知道又没有用,但是如果进行隐藏,不给外部查看,那么就很清晰了,因为这样一来,只要是对外暴露的属性方法,都是有用的,你想一下,JDK的类库里面的那些类,比如String类,对外暴露的属性和方法,哪个是无用的?这也是一种良好的编程习惯和规范。
说了这么多,其实我的理解也有限,面向对象思想又不局限于某种语言,楼主仔细体会一下吧,我说的可能也不全对,这只是我个人的一点理解。
刚才上网搜到了一句话,不是我说的,但我感觉说的也不错,可以仔细体会一下:
封装是人们对现实世界中解决问题时,为了进行简化问题,对研究的对象所采用的一种方法,一种信息屏蔽技术。
java面向对象封装的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于在面向对象编程中,类为什么要封装、java面向对象封装的信息别忘了在本站进行查找喔。
发布于:2022-11-23,除非注明,否则均为
原创文章,转载请注明出处。