JavaOOP、类

     基本概念
        ↑                         

Java面向对象程序设计→类的使用
↓ ↓
创建与使用 深入解析类

一、基本概念
面向对象程序设计(Object Oriented Programming,简称OOP)
⒈对象
现实世界中,对象是客观存在某一事物,有状态(属性)和行为两个特征。 在OOP中对象是一组数据和相关方法的集合,在程序中可以通过变传递或获取数据,在Java中,对 象必须基于类来创建,
⒉类
类是用来描述一组具有共同状态和行为的对象的原型,是对这组对象的概括、归纳与抽象表达。
在OOP中可以让具有共同特征的对象形成类,他定义了同类对象共有的变量和方法,通过类可以生成具有特定状态和行为的实例,这便是对象。
⒊封装
① 封装是将代码及其处理的数据绑定在一起的一种编程机制,保证了程序和数据都不受外部干扰且不被误用。封装的目的使设计者和使用者分开,使用者不必知道对象行为实现的细节,只需用设计者提供的接口来访问对象
②封装是OOP设计者追求的理想境界,对开发员有模块化和数据隐藏。模块化有独立行为不影响其他模块,有很好的重用性,数据隐藏对自己有保护能力,封装机制提高了程序的安全性和可维护性
⒋继承
继承是OOP中两个类之间的一种关系,一个类可以继承另一个类它的父类)的状态和行为,被继承的泪称超类或父类,继承父类的泪称为子类。一个父类可以同时总有多个子类,其实父类实际上是所有子类的公共变量和方法的集合,子类可以不受父类提供的状态和行为的限制,子类也可以改变从父类继承来的方法。 继承有效的提高了编程效率

二、类的使用
①main方法是Java应用程序的入口
public clacc 类名{
//成员变量列表
public static void main(String[ ]args){
//局部变量声明
//方法体
}
}
②类声明
定义了类的名字及其它属性,类声明一般格式
[类修饰符]class类名[extends父类名称][implements接口名称列表]{
……
}
类修饰符
public(公共的)、abstract(抽象的)、final(最终的)。如果没有声明这些修饰符,Java编辑器默认该类为friendly类,对于这些类,只有同一个包中的类可以访问。
extends关键字用来告诉编译器创建的类是从父类继承来的,父类必须是Java系统的预定义类或用户以定义好的类,一个类只能有一个父类,但一个父类可以有多个子类,
class类名extends父类名{
…//类体
}
一个类可以实现多个接口,多个接口间用逗号分开
implements interface1,interfacerfsce2,…,
使用接口呢主要目的:使程序的功能描述和功能的具体实现相分离,使程序结构清晰,Java中不支持一个类有多个直接的父类(称为多继承)但支持集成多个接口,用接口实现多继承。
③类体
编写类的目的是为了描述一类事物共有的属性和功能,类声明之后的一对大括号,大括号之间的内容称类体内容“{“、”}”
类体是类功能实现的主体,是Java语句的集合,集体的三类要素:成员变量、常量、构造方法、方法  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ===
==  ̄ ̄ |
| ↓ |
↓ (描述对象行为) |
(一般用来初始化成员变量) ↓
( 用来刻画对象的状态 )

成员变量或常量声明必须放在类体中
[访问控制修饰符][static]<数据类型>变量名;
[访问控制修饰符][static][fial]<数据类型>常量名;
④方法的修饰符
abstract方法(抽象方法)、static方法(类方法或静态方法)、final方法(最终方法)、native方法(本地方法)、synchronized方法(同步方法)、throws异常类型列表
局部产量注意原则
★不允许使用Java修饰符修饰
★局部变量和成员变量不同,它不会被初始 化,没有默认值。

三、创建与使用
⒈对象创建与使用
类是创建对象的模板
①对象的创建
创建一个对象包括声明对象引用变量(即声明对象)和为对象分配内存空间(即创建对象)两步骤。
1>声明对象引用变量
一般格式 : 类名 对象名
2>为声明对象分配内存
<对象名>=new<构造方法名>([参数列表]);
2.包的创建与使用方法
包实际上就是一个存放.class的文件夹,创建包就是创建文件夹,文件夹的路径取决于如何设计包的路径。
1>希望使用外部包中类的程序中导入类
如果如果程序中有package语句的话,import语句应紧跟在package语句后。如果程序中没有package语句的话,import语句应作为程序的第一条语句,并且import语句可以有多条,以导入多个包中的类。

四、深入解析类
①子类和父类的关系具有:
◆共享性 子类可以共享父类的公共属性和方法
♦差异性 子类和父类存在某些差异,否则就应是同一个类
♦层次性 由于Java只支持单继承,每个类都处于继承关系中的某一个层面。
②基于父类创建子类时,子类可以继承父类的成员变量和成员方法。但是如果在父类和子类中同时声明了一个同名变量这两个变量在程序运行时同时存在,子类用父类的同名变量时,父类中的被隐藏了。
 ̄ ̄
③子类可以集成父类中所有可以被子类访问的成员方法,如果子类重新定义了父类继承来的方法,父类的这个方法在子类不复存在,,称子类方法覆盖了父类的方法,简称方法覆盖(voerride)  ̄ ̄
 ̄ ̄ ̄ ̄ ̄ ̄
④当基于子类创建一个对象时系统会首先调用父类的无参构造方法,然后才会执行子类的构造方法,这体现了构造方法的继承性。
 ̄ ̄ ̄ ̄
⑤接口的定义
接口是由长江和抽象方法组成的特殊类,定义一个接口与定义一个类是相似的。
接口定义包括 接口声明 、接口体
接口一般格式
[public]interface接口名[extends 父接口明列表]{
//常量声明
//抽象方法声明
}
注 接口两个部分必需:interface关键字、接口名字
接口有继承性

发布了20 篇原创文章 · 获赞 5 · 访问量 3174

猜你喜欢

转载自blog.csdn.net/xupanwenjie/article/details/88901217