javase重新开始系列之OOP简要

OOP(Object Oriented Programming)——面向对象开发

对象是类的实例。

类是现实实体抽象出的数据类型。类是java的基本组成要素。类是用来定义对象的模版。类就像模具,对象就是模具做出来的产品。

类包含成员变量和成员方法。

类的声明:

[修饰符] class类名 [extends 父类名] [implements接口名]{ // 类体开始

  成员变量的声明;  // 描述属性

  成员方法的声明;  // 描述功能

}  // 类体结束

修饰符包括:

public、private、protected(访问控制符)

abstract(抽象)、final(终态,类不能被继承)、static(静态)


类的构造方法(constructor)与类名相同,可以有多个,没有访问值(但不需要写明void类型),总是和new运算符一起调用。


OOP的三大特性是封装、继承、多态。

封装,个人理解,一个封装好的类就像是一辆玩具车,购买者(类使用者)只需要知道它的用法(对外方法),而不需要知道它是什么结构,是怎么实现的。可以控制对类成员的访问,限制不合理的操作,便于修改,增强代码的可维护性。

继承,子类继承父类的方法和变量,并在不修改父类的情况下进行功能的修改和扩展。

(instanceof:用于判断一个类是否实现接口,也可用来判断一个对象是否属于一个类,例 if(a instanceof B)

多态,允许将子类类型的指针赋值给父类类型的指针。使父类的对象可以以不同子类的对象形态表示和使用。(方法覆盖)

(静态多态:编译时决定调用什么方法,当方法重载时就可认为形成了静态多态,跟继承没有什么必要联系)

(动态多态:运行时决定调用什么方法,需有继承、方法覆盖、父类引用指向子类实例并通过父类引用调用被覆盖的方法)


方法覆盖:子类中存在与父类同名同参的方法,将父类的方法覆盖掉,使得调用的是子类重写的方法。

方法重载:在一个类中存在多个同名不同参的方法,按需调用不同的方法。

this关键字

在类中,this指向的是当前对象。出现成员变量与局部变量重名时使用this解决冲突。

在一个构造器中调用另一个同类构造器时应使用this([参数列表])。


static修饰的方法和变量成为静态方法和静态变量。在类中则为类方法和类变量,类方法(静态方法)只能访问该类的类成员变量和类方法,不能直接访问实例的成员变量和方法;同一个类的实例方法(静态方法)可以访问该类的类变量(静态变量)和类方法(静态方法)。

所以main函数不能访问当前类的成员变量。(main函数是一个静态方法,一个类最多只能有一个)

Java中,有些类的对象不是用new关键字生成,而是通过调用一些类的静态方法来生成,这称为工厂方法。例如:Calendarcalendar=Calendar.getInstance();


另:

静态引入(jdk1.5以后)

import statc java.lang.system.*;//引入system类的静态属性,而后在代码中可以直接out.println()而不需要加System.



猜你喜欢

转载自blog.csdn.net/jasonsama/article/details/52172016