我们都知道java是面向对象的语言,实际上你们知道面向对象是什么概念吗?它的三个基本特征又是什么呢?下面一起了解下吧。
面向对象概念
面向对象,这是一种以对象为中心的编程思想,对象是什么?一个实实在在的物体,就是一个对象。对象是类的具体实现。面向对象会通过分析问题来把事物的属性与行为包括本身对象化,然后通过不同对象之间的调用来组合解决问题。面向对象认为万物皆对象,它创建对象的目的并不是为了完成某个步骤,一定是为了描述某个事物在解决问题的过程中的行为而创建的。
面向对象三大基本特征
1)、封装
封装是什么?
具体来说就是将一个客观事物封装成抽象的类,且这个类可以把自己的数据和方法只让可信的类或对象操作,这称为私有化。它还可以对不可信的进行信息隐藏。封装是对象和类概念的主要特性之一。简单的说,一个类就是一个封装了数据及操作这些数据的代码的逻辑实体。
封装的好处?
-对象的属性和方法是一个整体,不可分割
-保证数据安全性
-保证数据有效性 在方法加条件判断
如何进行封装?
属性的封装
1、将所有的属性加上private
2、为属性加上get/set方法
3、用set/get方法进行赋值取值
方法的封装
1、把方法名前面的public改为private
2、私有方法一定要在公共方法里面去调用
一般所有的属性都要私有,但是方法要根据需要来私有
2)、继承
什么是继承?
子类继承父类,然后子类能自动拥有父类的一些属性和方法,这就是继承
为什么要用继承?
为了简化代码,所以我们需要用继承。相同的功能交给父类去实现,然后子类继承父类后能自动拥有这些功能,并实现功能扩展、多态
继承的语法?
public class 子类 extends 父类 {} public class 大学生 { String name; int age; char sex; public void 读书() {} } public class 中学生 { String name; int age; char sex; public void 读书() {} } public class 小学生 { String name; int age; char sex; public void 读书() {} }
学生中一种 is-a
把相同属性和方法放在父类中定义,然后让各个子类继承父类
public class 学生 { String name; int age; char sex; public void 读书() {} } public class 大学生 extends 学生 { public void 读恋爱() {} } public class 中学生 extends 学生 { public void 上网() {} } public class 小学生 extends 学生 { public void 撒娇() {} }
子类能继承到什么?
父类的私有成员和方法;父类的构造;
除了这两个无法继承,其他都可以
哪些类可以继承
凡是满足“is-a”(xx是一种xx)关系的,都可以继承。
单继承和单方向
单方向:子类能继承父类,但父类不可以继承子类
单继承:一个子类只能有一个直接父类
Object
所有类的祖宗类
继承的原理
new 一个子类对象出来的时候,先造出父类对象,然后再生子类对象
儿子没有东西就会找父亲拿
3)、多态
什么是多态?
多态就是指同一个行为具有多个不同表现形式或形态的能力。是指一个对象的相同方法在不同情形有不同表现形式。多态机制使具有不同内部结构的对象可以共享相同的外部接口。这就表明,虽然针对不同对象的具体操作不一样,但我们可以通过一个公共的类,来使它们通过相同的方式予以调用。
多态的优点?
-消除类型之间的耦合关系
-可替换性
-可扩充性
-接口性
-灵活性
-简化性
多态的实现:
public class 父类 { String name = "张三"; public void 睡觉() { System.out.println("父亲睡是躺着睡的"); } public void 走路() {} } public class 子类 extends 父类 { String name = "李四"; int age = 10; public void 睡觉() { System.out.println("儿子睡是侧着睡的"); } public void 上网() {} }
以上就是关于面向对象的概念及三个基本特征的所有内容了,面向对象可以说是如今的主流编程思想,如果还有疑问,想了解更多java常见问题,就请关注我们的网站吧。
推荐阅读: