首页 » 软件开发 » 什么是面向对象的编程思想(静态方法对象变量属性)

什么是面向对象的编程思想(静态方法对象变量属性)

admin 2024-07-24 16:33:18 0

扫一扫用手机浏览

文章目录 [+]

首先让我们来了解一下什么是对象?

没错!
要了解面向对象我们肯定需要先知道对象到底是什么玩意儿。
关于对象的理解很简单,在我们的身边,每一种事物的存在都是一种对象。
总结为一句话也就是:对象就是事物存在的实体。
下面举个简单的例子,比如人类就是一个对象,然而对象是有属性和方法的,那么身高,体重,年龄,姓名,性别这些是每个人都有的特征可以概括为属性,当然了我们还会思考,学习,这些行为相当于对象的方法。
不过,不同的对象有不同的行为

面向对象的特征

什么是面向对象的编程思想(静态方法对象变量属性) 软件开发
(图片来自网络侵删)

图1 面向对象编程方法

封装:就是把属性私有化,提供公共方法访问私有对象。
举个简单的例子,我们去Apple店里买个iPhoneX,我们不需要知道它是怎么制造的,我们只需要知道它能用来打电话,上网和用来装B就行了。
对于程序设计,用户只需要知道类中某个方法实现了什么样的功能,需要该功能的时候直接去调用就行了,不用去关心方法内部的实现细节

继承:当多个类具有相同的特征(属性)和行为(方法)时,可以将相同的部分抽取出来放到一个类中作为父类,其它类继承这个父类。
继承后子 类自动拥有了父类的属性和方法,比如猫,狗,熊猫他们共同的特征都是动物,有颜色,会跑,会叫等特征。
我们可以把这些特征抽象成我一个Animal类(也就是父类)。
然而他们也有自己独特的特性,比如猫会抓老鼠,喵喵叫,熊猫有黑眼圈,能吃竹子,狗会汪汪。
于是我们就根据这些独特的特征分别抽象出来Cat,Dog,Panda类等。
他们拥有Animal类的一般属性和方法,也拥有自己特有的某些属性和方法。

但特别注意的是,父类的私有属性(private)和构造方法不能被继承。
另外子类可以写自己特有的属性和方法,目 的 是实现功能的扩展,子类也可以复写父类的方法,即方法的重写。
子类不能继承父类中访问权限private的成员变量和方法

多态:简单来说就是“一种定义,多种实现”。
同一类事物表现出多种形态。
Java语言中有方法重载和对象多态两种形式的多态

方法重载:在一个类中,允许多个方法使用同一个名字,但是方法的参数不同,完成的功能也不同

对象多态:子类对象可以与父类对象进行相互转换,而且根据其使用的子类的不同,完成的功能也不同

抽象:抽象是从许多事物中,舍弃个表的,非本质的属性,抽取出共同的,本质的属性的过程。
例如教师,学生和工人,他们共同的特质是人类,既然是人类就有共同的属性:性别,年龄,身高,体重等。
抽象的过程就是比较的过程,通过比较找出事物之间的共同属性,通过比较区分本质。

类与对象的关系

所有的事物都可以看做是一个对象,是对象就具有一定的属性和功能,这些对象是可以建立起联系的,而且这些对象是由类来构造的。
类是具有属性和方法的一组对象的集合,对象是实际存在的该类事物的个体

在面向对象中,类和对象是最基本和最重要的组成单元。
类实际上是表示一个客观世界某类群体的一些基本特征抽象,对象就表示一个个具体的东西,对象是以类模板创建的。

举个简单的例子:兰博基尼跑车,在工厂里首先要由设计师设计出一个汽车图纸,然后再根据图纸去生产兰博基尼,这样生产出来的每一辆跑车结构和功能都是一样的。
但是不同的款式有不同的特征,比如车的颜色,内部装饰,马力等。
在这个例子中,设计图纸就是一个类,它规定看跑车应该拥有的基本部件。
而根据这张图纸生产出来的每一辆跑车就是一个个实时存在的对象。
它们的初始状态是一模一样的,如果其中某一辆颜色,发动机重新改了之后并不影响其他的跑车。

stati修饰符:

static关键字的中文含义是静态的意思。
使用static修饰的成员变量,常量,方法和代码分别称为静态变量,静态常量,静态方法,静态代码块,它们统称为静态成员。
静态成员归整个类所有,不依赖特定的实例,被类的所有实例所共享的。
只要被JVM加载就可以根据类名在全局数据区内找到

类的成员变量分为两种:

实例变量 (ps:也就是没有被static关键字修饰的变量)静态变量

两者之间的区别:

图2 变量

访问静态变量

图3 访问静态变量

静态方法和和静态变量一样,可以不通过本类的实例对象而通过“类名.静态方法名”就可以调用。
静态方法不能访问本类的实例变量和实例方法。
因为静态资源在编译时(对象未实例化时)就被加载了,而非静态资源在运行时才被加载,多以静态方法只能调用静态变量,不能调用非静态资源!
~

实例方法就不一样了,可以访问静态和非静态成员,包括静态变量、静态常量、静态方法,实例变量和实例方法。

变量的作用域

图4 变量作用域

访问控制符

Java语言中,访问修饰符可以出现在类,成员变量,成员方法以及构造方法前,用来控制权限。
Java提供了4种级别的访问控制

public 权限最宽 修饰的类,属性,方法不仅可以跨类还可以跨包访问private 权限最狭隘 修饰的类,属性,方法只能被该类的对象访问,即使是其子类也不能访问!
做的很绝-.-protected 介于public和private之间 修饰的类,属性,方法能被该类的对象,本包,子类访问(即使没和父类在同一包中)default 默认访问模式,只向同一个包中的类公开,即同包访问。

代码块

代码块分为普通代码块,构造块,静态代码块

静态代码块主要用于初始化类,为类的静态属性初始化,有以下几个特点:

静态代码块不能存在于任何方法体内不能直接访问实例变量和实例方法(上面说过了原因)

JVM在加载类时就会执行静态代码块,所以静态代码块优先于主方法执行

从程序的运行结果我们可以发现,在public类中的静态代码块优先于主方法执行,主方法由于构造块执行,够造块优先于构造方法执行。
但是值得我们注意的是,无论创建多少个对象,静态代码块只会执行一次

程序中的执行顺序

public中静态代码块 -->主方法-->构造块-->构造方法

标签:

相关文章

语言中的借用,文化交融的桥梁

自古以来,人类社会的交流与发展离不开语言的传播。在漫长的历史长河中,各民族、各地区之间的文化相互碰撞、交融,产生了许多独特的语言现...

软件开发 2025-01-01 阅读1 评论0

机顶盒协议,守护数字生活的新卫士

随着科技的飞速发展,数字家庭逐渐走进千家万户。在这个时代,机顶盒成为了连接我们与丰富多彩的数字世界的重要桥梁。而机顶盒协议,作为保...

软件开发 2025-01-01 阅读1 评论0

语言基础在现代社会的重要性及方法步骤

语言是人类沟通的桥梁,是社会发展的基础。语言基础作为语言学习的基石,对于个人、社会乃至国家的发展具有重要意义。本文将从语言基础在现...

软件开发 2025-01-01 阅读2 评论0

粤语电影,传承文化,点亮时代之光

粤语电影,作为中国电影产业的一朵奇葩,以其独特的地域特色、丰富的文化内涵和鲜明的艺术风格,赢得了广大观众的喜爱。本文将从粤语电影的...

软件开发 2025-01-01 阅读5 评论0

苹果游戏语言,塑造未来娱乐体验的基石

随着科技的飞速发展,游戏产业逐渐成为全球娱乐市场的重要支柱。在我国,游戏产业更是蓬勃发展,吸引了无数玩家和投资者的目光。而在这其中...

软件开发 2025-01-01 阅读1 评论0