第六章 面像对像编程基础

6.1 面向对象概述
       面向对象,是一种设计思想。从20世纪60年代提出面向对象的概念到现在,它已经发展成为一种比较成熟的编程思想,其以人类习惯的思维方式,用对象来理解和分析问题,使开发软件的方法与过程尽可能接近人类认识的世界、解决问题的思维方法与过程。如我们经常听说的面向对象编程就是主要针对大型软件设计而提出的,它可以使软件设计更加灵活,并且能更好地进行代码复用。

1.对象
​       对象是实际存在的个体。

2.类
       现实世界中不存在的,是一个抽象的概念,是一个模板。

3.面向对象程序设计的特点
封装
       封装是面向对象编程的核心思想。其将对象的属性和行为封装起来,其载体就是类,类通常对客户隐藏其实现细节,这就是封装的思想。例如,用户使用计算机,只需要使用手指敲击键盘就可以实现一些功能,而无须知道计算机内部是如何工作的。

       采用封装思想保证了类内部数据结构的完整性,使用该类的用户不能直接看到类中的数据结构,而只能执行类允许公开的数据。这样就避免了外部对内部数据的影响,提高了程序的可维护性。
 

继承
类与类之间同样具有关系

       例如,平行四边形是四边形,正方形、矩形也是平行四边形,平行四边形与四边形具有共同特性。如果把平行四边形看作四边形的延伸,那么平行四边形就复用了四边形的属性和行为,同时添加了平行四边形特有的属性和行为,如平行四边形的对边平行且相等。可以把平行四边形类看作是从四边形类中继承的,Java语言中,将类似于平行四边形的类称为子类,将类似于四边形的类称为父类或超类。值得注意的是,在阐述平行四边形和四边形的关系时,可以说平行四边形是特殊的四边形,但不能说四边形是平行四边形。所以,继承是实现重复利用的重要手段,子类通过继承复用了父类的属性和行为的同时,又添加了子类特有的属性和行为。

多态
       将父类对象应用于子类的特征就是多态。比如创建一个螺丝类,螺丝类有两个属性:粗细和螺纹密度;然后再创建了两个类,一个是长螺丝类,一个是短螺丝类,并且它们都继承了螺丝类。这样长螺丝类和短螺丝类不仅具有相同的特征(粗细相同,且螺纹密度也相同),还具有不同的特征(一个长,一个短,长的可以用来固定大型支架,短的可以固定生活中的家具)。即,一个螺丝类衍生出不同的子类,子类继承父类特征的同时,也具备了自己的特征,并且能够实现不同的效果,这就是多态化的结构。

6.2 类与对象
1.成员变量
对应的就是事物的属性

和之前定义的变量几乎时一样的,只不过位置发生了改变,成员变量位于类中,任何方法之外。

2.成员方法

对象事物的行为

和之前定义的方法几乎是一样的,只不过把static关键字去掉

 

3.构造方法
方法名和类名相同

没有返回值和void,没有return

不能被static等关键字修饰

可以方法重载(定义多个参数列表不同的构造方法)

当一个类中没有写构造方法时,系统会默认给该类一个默认的无参构造方法。当自己定义构造方法后默认的构造方法就不存在了。(自己定义有参的构造方法后,如果还想使用无参的构造方法,就要自己再添加一个无参的构造方法)

 

4.局部变量

必须有初始值

存储在栈内存中

5.局部变量的有效范围

定义在方法的内部或者某一个语句块的内部,适用范围仅限于方法内或者语句块内

6.对象的创建 

对象一建立就会调用构造方法,可以创建对象,给成员变量(属性)

 7.访问对象的属性和行为

 

 

8.对象的销毁

9.this关键字

this代表它所在方法所属对象的引用。哪个对象调用的this所在的方法,this就代表哪个对象

 

 

 

6.3 static关键词

1.静态变量

运行时,Java 虚拟机只为静态变量分配一次内存,在加载类的过程中完成静态变量的内存分配。

在类的内部,可以在任何方法内直接访问静态变量。

在其他类中,可以通过类名访问该类中的静态变量。

 

 

静态变量
在内存中只有一个拷贝(节省内存), JVM只为静态分配一次内存.在加载类的过程中完成静态变量的内存分配. 可用类名直接访问, 当然也可以通过对象来访问(不推荐).

实例变量
每创建一个实例, 就会为实例变量分配一次内存, 实例变量可以在内存中有多个拷贝, 互不影响, 需要通过实例的引用来访问

2.静态常量
final是Java的一个保留关键字, 可以声明成员变量、方法、类以及局部变量. 被声明final的变量, 一但赋值便不能再次修改.编译器会检查代码,如果你试图将变量再次初始化的话,编译器会报编译错误.final变量经常和static关键字一起使用作为常量。

3.静态方法

如果想要使用类中的成员方法,需要先将这个类进行实例化,但有时候不想或者无法创建类的对象时,还要调用类中的方法才能够完成业务逻辑,这种情况下就可以使用静态方法。

 

 静态的方法,不能直接使用非静态。
原因:内存当中先有的静态内容,后有的非静态内容。
先人不知道后人,但是后人知道先人。

4.静态代码块

在类的成员方法之外,用static修饰代码区域可以称之为静态代码块。定义一块静态代码块可以完成类的初始化操作,在类声明时就会运行。

6.4 类的主方法

主方法是类的入口点,他指定了程序从何处开始,提供对程序流向的控制。Java编译器通过值方法来执行程序

 主方法是静态的,所以如要直接在主方法中调用其他方法,必须是静态方法。
主方法没有返回值
主方法的形参为数组,其中arg[0] - args[n]分别代表程序的第一个参数到第n+1个参数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值