1.1面向对象
1.1.1 1).面向对象的基本概念: 面向对象程序设计又称为OOP,是目前占主流地位的一种程序设计,其思想宗旨是“基于对象的编程”。对象是对现实世界事物的模拟,可以把万事万物当做各种对象。面向对象程序设计将具有共同行为和状态的对象共同性质抽象出来,使用数据和方法来描述对象的状态和行为。面相对象的四个重要特征就是“封装”,“继承”,“多态”,“抽象” 2)类 在程序中,类实际上就是数据类型。为了更好的模拟现实世界,往往需要创建解决问题所必须的数据类型 。 (1)类的定义
定义类的格式:
[类的修饰符] class 类名 [extends 父类] [implements 接口名]{
成员变量声明
成员方法声明
构造方法
} (2)成员方法(methods) 1.实例方法 2.静态方法,也成类方法 3.设置器和访问器
设置器和访问器(setXXX getXXX):通常完成对于各成员变量赋值功能的方法称为设置器;完成对某个成员变量查看的方法真会访问器。
设置器特点:返回值类型为void,方法声明至少有一个参数,一般为value,方法体内肯定有赋值语句。
访问器特点:方法声明,部分有返回值类型(成员变量的数据类型),方法体内必须有return语句。
方法的声明: [成员说明修饰符] [方法返回类型] 方法体([形参列表]){ //方法体 } 方法返回类型定义了方法返回值则类型,可以为基本类型,也可以为复合类型 。当一个方法不需要返回值时,返回类型为void,如果声明了方法返回值类型,则方法体内必须有一条有效的return语句,该语句返回一个变量或一个表达式的值,这个变量或表达式的值,必须与方法返回值类型匹配 方法的调用: 方法名(实参列表) 对象的引用名.方法名(实参列表) 类名.方法名(实参列表)
(3)成员变量 成员变量也称属性是事物静态特征的抽象,成员变量分为两种:类的成员变量和对象的成员变量 成员变量的定义格式: [成员说明修饰符] 变量类型 成员变量名
成员说明修饰符限定了该变量的访问权限,可以省略,也可以是public ,private......用static修饰的就是类成员变量,由类名调用。不是static修饰的,就是实例成员,由对象名调用,只属于某一个变量
变量类型可以是JAVA语言允许的任何数据类型,包括基本数据类型和复合数据类型。
变量名必须是合法的标识符。
(4)构造方法 特点:
- 构造方法的名字与类名相同
- 作用是个对象的成员变量赋初始值
- 无返回值类型且不写void
- 由系统调用,通过new关键字实现
- 可重载
1.2.1 (1)对象的声明 格式:类名 对象名 (2)对象的初始化 对象名 = new 类名(参数) (3)引用对象 对象名.成员变量名 对象名.成员方法名(参数列表) 1.3.1 1) 访问权限: public>protected>默认(package或default)>private
- public修饰某成员,任意位置都可
- protected修饰某成员,相同类包内的不同类可以访问,不同类包中有父子继承的类可以访问
- 什么都不写,就是默认的访问权限,他修饰的成员,在一个类包中的不同类可以访问
- private修饰成员,只能是自己类中访问
2) this关键字 - 用来区分全局变量和局部变量
- 用来指代自身对象的引用
int age
public void setAge(int age){
this.age=age
}
1.2继承,接口
1.2.1继承的定义 本质为代码复用,类的继承是单继承接口是多接口
-
子类继承了父类定义的变量和方法 -
也可以修改父类的变量或重写父类的方法 -
可添加自己特有的变量和方法 类的继承是通过关键字extends来实现的,其格式为: [访问权限] class 子类名 extends 父类名 1.2.2继承的特点 -
只能继承父类中非private -
父类中的成员可被子类覆盖 -
子类通过super关键字访问的父类中被覆盖的成员 -
构造方法执行顺序:子类生成对象时先执行父类的构造方法,在执行子类的子类默认调用父类无参构造方法,子类构造方法中如果有super代码,一定是第一行 1.2.3继承的应用 final关键字: -
修饰类表示,词类是最终类,不能被继承 -
修饰变量表示,该变量是常量,不能被修改 -
修饰方法表示,该方法是最终方法,不能被重写 1.2.3接口的定义 接口就是方法定义和常量值的集合,接口在语法上和类相似,他也有属性和方法,接口间也可以形成继承关系。它的属性都是常量方法,都是抽象方法,没有方法体。 接口的定义: [修饰符] <接口名> [extends父接口列表]{
} 1.2.4接口的特点
- 接口用关键字interface来定义,而不是class
- 接口中定义的变量全部是静态变量,而且是最终的静态变量,接口还可以,用来实现不同类之间的常量共享
- 接口中没有自身的构造方法,而且定义的方法都是抽象方法,即只提供方法的定义,而不提供具体的实现
- 接口采用多重继承机制,而不是采用类的单重继承机制
1.2.5接口的实现 类修饰符 class 类名 [extends 父类名] [implements 接口名列表]{ // 类中重写方法的抽象方法 } 1.2.6抽象类 1.抽象类 抽象类一般没有足够的信息来描述一个具体的对象,抽象类只用于继承,不能用于创建对象,一个抽象类一般包括一个或多个抽象方法。 语法格式:abstract class 类名{ 类成员定义 } 抽象类特性: - 抽象类中不是所有的方法都是抽象方法,可以在抽象类中声明并实现方法
- 抽象类的子类必须实现,父类的所有抽象方法后,才能实例化,否则这个子类也会成为一个抽象类
- 抽象类不能实例化
- 可以定义不包含抽象方法的抽象类,此时该类不能被实例化
|