目录
6.1 面向对象概述
6.1.1 对象
对象:是事物存在的实体,如人类,书桌,计算机,高楼大厦.
(对象分为两个部分) 被成为"属性".
静态部分:不能动的部分;
动态部分:能动的部分;
6.1.2 类
类:同一类事物的统称,如果将现实世界中的一个事务抽象成对象,类就是这类对象的统称;
类是构造对象时所依赖的规范 更为恰当的描述是,类是世间事物的抽象称呼,而对象则是这个事物相对应的实体.(类是封装对象的属性和行为的载体).
6.1.3 面向对象程序设计的特点
面向对象程序设计具有以下特点:
封装性.
继承性.
多态性.
1.封装:面向对象编程的核心思想.将对象的属性和行为包装起来,其载体就是类,类通常对客户隐藏其实现细节,这就是封装的思想.保证了类内部数据结构的完整性,提高了程序的可维护性.
2.继承:类之间的这种关系被称为关联.关联主要描述两个人类之间的一般二次关系,继承是关联的一种.(继承性主要利用特定对象之间的共有属性)
继承关系可以用树型关系来表示,父类与子类存在一种层次关系.一个类处于继承体系中,它既可以是其他类的父类,为其他类提供属性和行为,也可以是其他类的子类,继承父类的属性和方法,如三角形既是图形类的子类也是等边三角形的父类.
3.多态:将父类应用于子类的特征就是多态.多态的实现并不依赖具体类,而是依赖于抽象类和接口.
6.2 类与对象
JAVA中定义使用class关键字,其语法如下:
class类名称{
//类的成员变量
//类的成员方法
}
6.2.1 成员变量
在JAVA中对象的属性也称为成员变量,成员变量的定义与普通变量的定义一样,语法如下:
数据类型 变量名称 [ = 值 ];(表示可选内容,即定义变量时可以其赋值,也可以不为其赋值.)
public class Bird {
String wing; //翅膀
String claw; //爪子
String beak; //喙
String feather; //羽毛
}
6.2.2 成员方法
1.成员方法的定义:
[权限修饰符] [返回值类型] 方法名( [参数类型 参数名] ) [throws 异常类型] {
...//方法体
return 返回值;
}
[权限修饰符] 可以时public,private,protected中的任意一个,也可以不写,主要用来控制方法的访问权限;"返回值类型"指定方法返回数据的类型,可以是任何类型,如果方法不需要返回值,则使用关键字void;一个成员方法既可以有参数,也可以没有参数,参数可以是对象也可以是基本数据类型.
如果定义的方法有返回值,则必须使用return关键字返回一个指定类型的数据;
public int ShowGoods () {
System.out.println("库存商品名称");
return 1;
}
2.成员方法的参数
调用方法时可以给该方法传递 一个或多个值 ,传给方法的值叫做实参,在方法内部,接收实参
的变量叫做形参,形参的声明语法与变量的声明语法一样。形参只在方法内部有效。Java中方法的参数主要有3种,分别为值参数、引用参数和不定长参数.
(1)值参数
值参数表明实参与形参之间按值传递,当使用值参数的方法被调用时,编译器为形参分配存储单元,然后将对应的实参的值复制到形参中,由于是值类型的传递方式,所以,在方法中对值类型的形参的修改并不会影响实参。
例:
(2)引用参数
如果在给方法传递参数时,参数的类型是数组或者其他引用类型,那么,在方法中对参数的修改会反映到原有的数组或者其他引用类型上.
(3) 不定长参数
声明方法时,如果有若干个相同类型的参数,可以定义为不定长参数,其定义声明如下:
权限修饰符 返回值类型 方法名(参数类型... 参数名)
注: 参数类型和参数名之间时三个点,而不是其他数量或省略号.
3.成员方法的使用;
6.2.3 构造方法
构造方法是一个与类同名的方法,对象的创建是通过构造方法完成的.其特点有
(1)构造方法没有返回类型,也不能定义为void.
(2)构造方法的名称要与本类的名称相同.
(3)构造方法的主要作用是完成对象的初始化工作,它能把定义对象的参数传给对象成员.
构造方法的定义语法如下:
class Book(
public Book() { //构造方法
}
}
6.2.4 局部变量
局部变量:在成员方法内定义一个变量
在方法被执行时创建,在方法执行结束时被销毁.在使用时必须进行赋值操作或被初始化
public String getName() { //定义一个getName()方法
int id =0; //局部变量
setName ("Jave"); //调用类中其他方法
return id+this.name; //设置方法返回值
}
6.2.5 局部变量的有效范围
可以将局部变量的有效范围称为变量的作用域,局部变量的有效范围从该变量的声明开始到变量的结束为止.在互不嵌套的作用域中可以同时声明两个名称和类型相同的局部变量.但 是在相互嵌套的区域中不可以这样声明,如果将局部变量id在方法体的for循环中再次定义,编译就i会报错.
6.2.6 对象的创建
对象可以认为是在一类事物中抽象出某一个特例.语法如下:
Test test = new Test();
Test test = new Test("a");
Test:类名.
test:创建Test类对象.
new:创建对象操作符.
a:构造方法的参数.
6.2.7 访问对象的属性和行为
6.2.8 对象的销毁
(1)对象引用超过其作用范围,这个对象将被视为垃圾;
例: { Example e = new example();} [对象e超过其作用范围,将消亡]
(2)将对象赋值为null;
例:{Example e = new Example();
e=null;}(当对象被置为null值时,将消亡)
6.2.9 this关键字
未使用this关键字:
使用关键字:
从这里能够明白this 可以调用成员变量和成员方法.也可以作为方法的返回值.
6.3 static 关键字
由static修饰的变量,常量和方法被称为静态变量,静态常量和静态方法,也被称为类的静态成员.静态成员是属于类所有的,区别于个别对象.
6.3.1 静态变量
把共享的变量用static修饰,该变量就是静态变量.可以在本类或其他类使用类名和"."运算符调用静态变量.
语法如下: 类名.静态类成员(static public int 变量)
注:同一个类的不同实例对象,共用同一静态变量,如果一个类将其更改,另一个类静态变量也会改
6.3.2 静态常量
用final static 修饰一个成员变量,这个成员变量就会变成一个静态常量.
例: final static double PI = 3.1415926;(给静态常量命名时所有的字母都应该大写)
6.3.3 静态方法
如果想要使用类中的成员方法,需要将先这个类进行实例化,但有些时候不想或者无法创建类的对象时,还要调用类中的方法才能够完成业务逻辑,此时就可以使用静态方法.
类名.静态方法();
6.3.4 静态代码块
用static修饰代码区域可以称之为静态代码块.语法如下:
public class StaticTest {
static { //此处编辑执行语句
}
}
6.4 类的主方法
主方法的语法如下:
Public static void main(String[] args) {
//方法体
}
以下特性:
(1)主方法是静态的,所以如要直接在主方法中调用其他方法,则该方法必须也是静态的.
(2)主方法没有返回值.
(3)主方法的形参为数组.