欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

java 面向对象初级

程序员文章站 2022-04-03 15:57:11
一 面向对象初学Java可能有很多人问面向对象是什么?先拿比较官方的语言来说就是:面向对象顾名思义就是把现实中的事务都抽象成为程序设计中的“对象”,其基本思想是一切皆对象,是一种“自下而上”的设计语言,先设计组件,再完成拼装。可能你还不懂,那我们就用几个通俗的例子来表达一下,其实在很早很早以前编程是面向过程的。那什么又是面向过程呢,来我们看看下面的例子你就可能明白了。比如有一天你突然想吃烧茄子了,那你该怎么办?现在我用面向过程和面向对象来描述:面向过程:自己出门,买茄子、油、调料、鸡蛋等等然后在自...

一 面向对象
初学Java可能有很多人问面向对象是什么?
先拿比较官方的语言来说就是:面向对象顾名思义就是把现实中的事务都抽象成为程序设计中的“对象”,其基本思想是一切皆对象,是一种“自下而上”的设计语言,先设计组件,再完成拼装。
可能你还不懂,那我们就用几个通俗的例子来表达一下,其实在很早很早以前编程是面向过程的。那什么又是面向过程呢,来我们看看下面的例子你就可能明白了。
比如有一天你突然想吃烧茄子了,那你该怎么办?现在我用面向过程和面向对象来描述:
面向过程:自己出门,买茄子、油、调料、鸡蛋等等然后在自己做放到盘子里。
面向对象:到饭店,只要说一声:“老板,来份烧茄子”,然后装满一盘的烧茄子放到了你的面前。
可能你还有点不理解,那我们再举一个例子:
比如你要砌一堵墙:
面向过程:1、拿起一块砖头;2、砖头上抹上水泥;3、将砖头砌在该砌的位子上。
面向对象:1、招一个工人,2、指挥工人砌墙。
可能砌一堵还体会不到面向对象和面向过程的有什么大的差别,那你现在好好想想如果是砌一百堵墙呢?
从上面的例子中,我们发现面向过程显的特别死板,没有面向对象灵活。需要关注很繁琐的过程,当我们做一个大的开发的时候,如果只注重过程的话,代码写到一定程度就很难再编写下去。而面向对象不同,面向对象不需要具体的细节,而关注的是架构的问题,相比面向过程,易维护、易复用、易扩展。
面向对象三大思想
面向对象思想从概念上讲分为以下三种:OOA、OOD、OOP
OOA:面向对象分析(Object Oriented Analysis)
OOD:面向对象设计(Object Oriented Design)
OOP:面向对象程序(Object Oriented Programming)
面向对象三大特征
封装性:所有的内容对外部不可见
继承性:将其他的功能继承下来继续发展
多态性:方法的重载本身就是一个多态性的体现

二 类与对象
类表示一个共性的产物,是一个综合的特征,而对象,是一个个性的产物,是一个个体的特征。
类必须通过对象才可以使用,对象的所有操作都在类中定义。
类由属性和方法组成,
属性:就相当于人的一个个的特征 ·。
方法:就相当于人的一个个的行为,例如:说话、吃饭、唱歌。
类的定义格式:
class 类名称{
成员属性;
成员方法;
}
例如:
java   面向对象初级
类创建的注意事项:
(1)类必须写在 .java 文件中。
(2)一个 .java文件中,可以写几个类,但是用public修饰的只能存一个。
(3).java文件的文件名称,必须与public修饰的类名完全一致,否则报错。
(4)在同一个包(文件夹)中,类名不能相同。

三 栈内存、堆内存
栈内存存储的是:对象的名称以及基本的数据类型的值。
特点:先进后出,存取速度快,但存储区域小。
堆内存存储的是:类的对象。
特点;内存空间大,不用关注堆内存中需要开辟多少存储空间,也不用关注内存占用时长。

关于栈内存和堆内存也可以这样理解:
栈内存存储的是地址 地址指向堆内存。
垃圾回收器回收堆内存的规则:
当栈内存不存在此对象的引用时,则视其为垃圾回收期回收。
四 构造方法
作用:用于对象的初始化。
执行时机:在创建对象时自动调用。
特点:
1、所有的java类都自少存在一个构造方法。
2、如果一个类中没有明确的编写构造方法,则编译器会自动生成一个无参构造方法,构造方法中没有任何的代码。
3、如果自行编译写了任意一个构造器,则编译器不会再自动生成无参的构造方法。

创建无参构造方法和多参构造方法
如图:
java   面向对象初级

Person p = new Person();
在右侧Person后面出现的小括号, 其实就是在调用构造方法 !

再main方法中调用无参构造函数
如图:
java   面向对象初级

打印内容:
java   面向对象初级

在main方法中调用多参构造函数
java   面向对象初级

打印内容:
java   面向对象初级

五 方法的重载
一个类定义的方法,是允许重载的(即方法的名称相同)
重载:
1、方法名称相同
2、参数列表长度或参数列表类型或参数顺序不同。
注意:
方法的重载与返回值类型无关。
java   面向对象初级

打印内容:
java   面向对象初级

构造方法也具有重载。
六 匿名对象
没有对象名称的对象就是匿名对象。
1、匿名对象只能使用一次,因为没有任何对象引用,所以将称为垃圾,等待被G:C回收
2、只使用一次的对象可以通过匿名对象的方式来完成,这一点在以后的开发中经常使用到。
java   面向对象初级

本文地址:https://blog.csdn.net/weixin_50396997/article/details/109957758