Java第六章总结

类和对象

面向对象概述

面向过程:代码紧密,不易分开,可维护性差

面向对象:可维护性强

在程序开发初期人们使用结构化开发语言,但随着软件的规模越来越庞大,结构化语言的弊端也逐渐暴露出来,开发周期被无休止地拖延,产品的质量也不尽如人意,结构化语言已经不再适合当前的软件开发。这时人们开始将另一种开发思想引入程序中,即面向对象的开发思想。面向对象思想是人类最自然的一种思考方式,它将所有预处理的问题抽象为对象,同时了解这些对象具有哪些相应的属性以及行为,以解决这些对象面临的一些实际问题,这样就在程序开发中引入了面向对象设计的概念,面向对象设计实质上就是对现实世界的对象进行建模操作。

类:

就是同一类事物的统称,如果将现实世界中的一个事物抽象成对象,类就是这类对象的统称,如鸟类、家禽类、人类等等。

简单来说就是创建的class

封装:

封装是面向对象编程的核心思想。将对象的属性和行为封装起来,其载体是类,类通常对客户隐藏其实实现细节,这就是封装的思想。

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

面向对象程序设计具有以下特点:封装性,继承性和多态性。

继承:

继承是java面向对象编程技术的一块基石,因为它允许创建分等级层次的类。

类与类之间同样具有关系,这种关系被称为关联。关联主要描述两个类之间的一般二元关系。

继承是一个类处于继承体系中,它既可以是其他类的父类,为其他类提供属性和行为,也可以是其他类的子类,继承父类的属性和方法。(子类的实例都是父类的实例,但不能说父类的实例是子类的实例)关联中的一种。

多态:

继承,父类和子类,其实将父类对象应用于子类的特征就是多态。

简单地调用父类也就是图形类绘制图的方法即可绘制任何图形,这就是多态最基本的思想。

多态性允许以统一的风格编写程序,以处理种类繁多的已存在的类及相关类。

在多态的机制中,比抽象类更方便的方式是将抽象类定义为接口。由抽象方法组成的集合就是接口


成员变量

在Java中,对象的属性也称为成员变量,成员变量可以是任意类型,整个成员变量均是成员变量作用范围。举例代码如下:

成员方法

定义成员方法的语法格式如下:

 注意:要使Java代码中的成员方法无返回值,可以使用void关键字表示

 权限修饰符

 注意:当声明类时不使用public、protected和private修饰符设置类的权限,则这个类预设为包存取范围,即只有一个包中的类可以访问这个类的成员变量或成员方法。

局部变量

局部变量是在方法被执行时创建,在方法执行结束时被销毁。局部变量在使用时必须进行赋值操作或被初始化,否则会出现编译错误。举例代码如下:

运行结果如下:

 

局部变量的有效范围 

可以将局部变量的有效范围称为变量的作用域,局部变量的有效范围从该变量的声明开始到改变量的结束为止。局部变量的作用范围如图下:

但是在相互嵌套的区域中不可以这样声明,如果将局部变量id在方法体的for循环中再次定义,编译器会报错,如下图:

类的构造方法

在类中,除成员方法外,还存在一种特殊类型的方法,那就是构造方法。构造方法是一个与类同名的方法,对象的创建就是通过构造方法完成的。每当类实例化一个对象时,类就会自动调用构造方法。

构造方法特点如下:

1.构造方法没有返回值

2.构造方法的名称要与本类的名称相同。

举例代码如下:

自动填充:(注意:要先把代码注释掉或删掉)

编写填充字段的规则MyMetaObjectHandler类,需要继承自MetaObjectHandler,填充的规则有多种

在使用的过程中要注意自己所需要的填充策略,我个人在MPBaseEntity类中将updateTime和updateBy填充策略设置为:新增和修改。即在执行插入的sql操作时,也会对这两个字段进行填充

 

例:

public class S {//类

private String name;//String类型成员变量

//getter 和 setter

public String getName() {//name的Getter方法

return name;

}

public void setName(String name) {//name的Setter方法

this.name = name;//就近原则,将参数赋值予类中的成员变量

}

没有运行结果

构造器自动生成

 

 静态

静态就是static,可以有静态常量、静态变量、静态方法和多个语句静态

静态是这个类的专属,只有这个类可以用,就是这个文件可以用,只要它们在一个文件里就行

 举例代码如下:

 运行结果如下:

对象的创建

                        创建对象语法中的参数说明:

举例代码如下:

 

访问对象的属性和行为

举例代码如下:

 运行结果如下:

 对象的引用

在Java语言中,尽管一切都可以看作对象,但真正的操作标识符实质上是一个引用。语法如下

对象的销毁

每个对象都有生命周期,当对象的生命周期结束时,分配给该对象的内存地址需要被回收。在其他语言中,需要用户手动回收废弃的对象。

  1.  对象引用超过其作用范围,这个对象将被视为垃圾

 2.这个对象被赋值为null

 虽然Java的垃圾回收机制已经很完善,但垃圾回收器只能回收那些由new操作符创建的对象。某些对象不是通过new操作符在内存中获取存储空间的,这种对象无法被垃圾回收机制所识别。那么JAVA提供了一个finalize方法这个方法是object类方法,他被声明为protected,用户可以在自己的类中定义这个方法,定义了这个方法后,垃圾回收时会首先调用该方法。

由于垃圾回收不受人为控制,具体的执行时间也不能明确的确定,所以finalize()方法也就无法执行,因此JAVA又提供了system.gc()方法来强制启动垃圾回收器,会主动告知垃圾回收器来清理垃圾

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值