面向对象的四大特征 封装 继承 多态 抽象

1.封装
广义: 类 方法 包 的定义本身就是一种封装
狭义: 在设计一个类的时候
将所有的属性设置为私有的
并对各个私有的属性设计相应的 存/取方法 来完成对属性的使用

私有化只能代表封装的特性
可以说私有是封装的一种 不能说封装即是私有
封装的好处:
隐藏实现细节 提供公共的访问方式
提高了安全性
封装的原则:
将不需要对外提供的内容都封装起来
把属性隐藏 提供公共的方法进行访问
private关键字*****
关键字的特点:
1.私有的意思
2.是一个权限修饰符
3.可以修饰成员变量 和 成员方法
4.被其修饰的成员 只能在本类中被访问
封装的步骤:
1.把成员变量用private修饰
2.提供相应的 存/取方法 setXxx() 和 getXxx();

2.this关键字
this关键字指的是 当前对象的引用
作用:
this.属性 访问本类的成员变量
用来区分 成员变量 和 局部变量 重名的问题
this.方法 访问本类的成员方法
this() 访问本类的构造方法
()中可以有参数的 如果有参数 就是调用指定的有参构造
注意事项:
1.this() 不能使用在普通方法中 只能写在构造方法中
2.必须是构造方法中的第一条语句
3.static关键字(静态)
特点:
1.static静态 可以用来修饰共有的属性/行为
2.static与类相关 和对象无关 随着类的加载而加载 优先于对象而存在
3.被类的所有对象共享
例如 空调 就是静态 水杯 就是非静态
4.被static修饰的成员 多了一种调用方式 可以通过 类名.成员名 调用
方法区:
类信息被存储在一个称为方法区的内存空间中
类信息就是由类加载器在类加载时从文件中提取

静态(类)变量 也存储在方法区中
静态和非静态的区别*****
1.所属不同
静态属于类
非静态属于对象
2.内存中位置不同
静态 存在方法区的静态区中
非静态 存在堆内存中
3.内存中出现的时间不同
静态随着类的加载而加载 随着类的消亡而消亡
存活时间长 不建议定义过多
非静态随着对象的创建而存在 随着对象的消亡而消亡
语法:
修饰成员 (成员变量 / 成员方法)

修饰成员变量的时候
[访问权限修饰符] static 类型 属性名;
修饰成员方法的时候
[访问权限修饰符] static 返回值类型 方法名(参数列表){
方法体
}
静态修饰方法:
被静态修饰的方法 为静态方法
1.只能直接访问 静态成员 包括成员变量和成员方法
不能直接访问 非静态成员 包括成员变量和成员方法
必须创建该类对象 才能调用非静态成员

因为静态优先于对象存在 在静态方法加载进内存时
非静态的还没进入内存中

2.在静态方法中 没有this/super 关键字
非静态方法
可以访问静态成员 也可以访问非静态成员
总结:
静态虽好 不能乱用
利:
将对象共享的数据 进行单独存储 节省内存
可以直接用类名.调用
弊:
生命周期过长
访问出现局限性 静态只能直接访问静态

静态的内存图


main方法梳理:
public static void main(String[] args){

}
主函数 是一个特殊的函数 可以被jvm直接调用 作为程序的入口
public 最大权限
static 静态的 在当前方法中会创建对象 需要在创建对象之前
先将main方法加载进内存
void 不确定的返回值 jvm不需要这个返回值
main 一个通用的名称 不是关键字 jvm会识别它
String[] 传入 存储String类型数据的数组
args 参数列表 名 整个main方法中 只有这个能随便写
代码块:
静态代码块 , 局部代码块 , 动态代码块
以{}包裹起来的代码 被称为一个代码块
局部代码块:
声明在方法中的代码块 执行时机与声明的位置相关
静态代码块:
使用static关键字修饰的代码块 在类加载时执行 并且 只执行一次
在类中 方法外定义
格式:
static{
执行内容
}
用于给类中的数据进行初始化 一般用于加载驱动 jdbc驱动
动态代码块:
又称为构造代码块 声明在类中的代码块 在创建对象是执行一次
每创建一个对象 就会执行一次动态代码块
在类中 方法外定义
格式:{
执行内容
}
执行顺序:
静态代码块>动态代码块>构造方法

原文地址:https://www.cnblogs.com/wanghuaying/p/9387544.html

时间: 2024-12-18 02:33:27

面向对象的四大特征 封装 继承 多态 抽象的相关文章

类与对象 面向对象和面向过程对比 面向对象三大特征:封装 继承 多态

 初识面向对象 面向过程: 一切以事务的发展流程为中心. 面向对象: 一切以对象为中心. 一切皆为对象. 具体的某一个事务就是对象 打比方: 大象进冰箱 步骤: 第一步, 开门, 第二步, 装大象, 第三步, 关门 面向对象:大象, 你进冰箱. 此时主语是大象. 我操纵的是大象. 此时的大象就是对象 1. 面向过程: 一切以事物的流程为核心. 核心是"过程"二字, 过程是指解决问题的步骤, 即, 先?干什么, 后干什么. 基于该思想编写程序就好比在编写一套流水线. 是一种机械 式的编程

面向对象的三大特性---封装继承多态

面向对象的三大特性---封装继承多态 首先我们来创建一个控制台程序 新建一个父类Person 创建一个子类继承父类Person 子类: main函数: 输出结果: 根据结果显示创建子对象,首先调用父类的构造函数在调用子类的构造函数. 继承的传递性 例如: A:B,B:C,则A:C ⅰ.继承过来之后被隐藏,有意隐藏加一个关键字"new",如果加了关键字"new",就告诉子类,父类里面的sayHi只能被隐藏,不能被覆写  ⅱ.继承过来之后被覆写/重写,覆写需要在父类里面

封装 继承 多态 抽象的一点点理解

1.抽象 抽象是人们认识事物的常用方法,比如地图的绘制.抽象的过程就是如何简化.概括所观察到的现实世界,并为人们所用的过程. 抽象包括两个方面:过程抽象和数据抽象.过程抽象把一个系统按功能划分成若干个子系统,进行"自顶向下逐步求精"的程序设计.数据抽象以数据为中心,把数据类型和施加在该类型对象上的操作作为一个整体(对象)来进行描述,形成抽象数据类型ADT. 2.封装 封装是面向对象编程的特征之一,也是类和对象的主要特征.封装将数据以及加在这些数据上的操作组织在一起,成为有独立意义的构件

面向对象编程的四大特征(封装、多态、抽象)

封装 (1).概念(实现代码的重用):封装是指类中的成员变量都是private,并提供public方法访问这些成员变量的技术.如果一个成员变量被声明为private,那么它就不能被其它类访问,从而隐藏了类中的成员变量.因此,封装也被称为数据隐藏. (2).访问修饰符:                             本类                  同包中不同类                  不同包               子类 public                

面向对象的三个基本特征 封装 继承 多态

一.封装: 封装是实现面向对象程序设计的第一步,封装就是将数据或函数等集合在一个个的单元中(我们称之为类).被封装的对象通常被称为抽象数据类型.  封装的意义: 封装的意义在于保护或者防止代码(数据)被我们无意中破坏.在面向对象程序设计中数据被看作是一个中心的元素并且和使用它的函数结合的很密切,从而保护它不被其它的函数意外的修改. 封装提供了一个有效的途径来保护数据不被意外的破坏.相比我们将数据(用域来实现)在程序中定义为公用的(public)我们将它们(fields)定义为私有的(privat

JAVA的三大特征 封装继承多态- 简单总结

简单总结一下 封装-即从很多类的抽取相同的代码 写在一个类里. 好处是 代码的重用,安全. 继承-减少代码的书写. 其好处也是 代码的重用. 多态- 把不同的子类对象都当作父类来看,可以屏蔽不同子类对象之间的差异,写出通用的代码,做出通用的编程,以适应需求的不断变化. 总的来说还是接口的重用. 那么总结一下,JAVA的三大特征 其好处 就是代码与接口的重用. 封装可以隐藏实现细节,使得代码模块化: 继承可以扩展已存在的代码模块(类): 它们的目的都是为了——代码重用. 而多态则是为了实现另一个目

java面向对象之四大特征之继承

Java作为一门高级编程语言,继承.多态.封装.抽象是其四大特征.在这篇文章中我们先来看看继承. 首先,让我们来看看继承的定义:继承就是在现有类上午基础上建一个新的类,新的类被称作现有类的子类,原来的类叫做父类:子类在继承父类的属性和方法的基础上,扩展自己的方法和属性.所以子类可以重用父类的方法和属性.在下面我们将会讲解方法的重写.在Java中,只允许单继承存在,即一个类只能有一个父类,不能有两个或者多个父类. 方法的重写:方法重写发生在子类和父类之间,子类的方法名和父类相同,参数列表相同,返回

JS面向对象基础篇(封装 继承 多态)

首先我们要创建一个对象,我们可以利用javascript的语法特征,以类的思想来创建对象 一:封装 (1)原始方法,代码如下 <script> var obj=new Object(); obj.name='Tom'; //给对象添加属性 obj.sex=22; obj.showName=function(){ //给对象添加方法 alert(this.name); } obj.showAge=function(){ alert(this.age); } obj.showName(); //'

java面向对象编程(六)--四大特征之继承、方法重载和方法覆盖

一.继承 1.继承的概念 继承可以解决代码复用,让我们的编程更加靠近人类思维.当多个类存在相同的属性(变量)和方法时,可以从这些类中抽象出父类,在父类中定义这些相同的属性和方法,所有的子类不需要重新定义这些属性和方法,只需要通过extends语句来声明继承父类.语法如下: class 子类 extends 父类 这样,子类就会自动拥有父类定义的某些属性和方法.另外,并不是父类的所有属性.方法都可以被子类继承.父类的public修饰符的属性和方法,protected修饰符的属性和方法,默认修饰符属