目录
对象
类
面向对象程序设计的特点
类的成员变量与成员方法
构造方法
局部变量
this关键字
static关键字
类的主方法
表示任意存在的事物,是一个抽象概念,随处可见的一种事务称之为对象,对象是事物存在的一种实体,通常将对象划分为两个部分,静态部分与动态部分,静态部分称之为“属性”,动态部分称之为对象的行为,即对象执行的动作。
例如:cxk是一种对象,他就具有性别与身高体重等客观存在的属性,并且cxk可以行走,可以跑步,可以唱跳、RAP、篮球。
类是封装对象的属性和行为的载体,也就是说具有相同属性与动作的对象可以归并到一个类中,类包括对象的属性和方法。而类中的对象属性是以成员变量的形式定义的,对象的行为是以方法的形式定义的。
声明一个类的语法:
class 类名称{
//类的成员变量
//类的成员方法
}
1.封装性:
类会将对象的属性与方法封装起来,对客户隐藏属性与方法的实现过程,采用封装结构可以避免内部数据结构遭到破坏,保证了程序的安全性,即用户只能调用一个类中对象的方法来完成操作,不可对对象中的数据进行肆意变更。
2.继承性:
继承是实现软件复用的重要手段,子类通过继承,复用父类的属性和行为,同时添加子类的行为与属性。
例如:在四边形里包括正方形,平行四边形,菱形等四边形,而正方形可以看作是继承了四边形的类,具有四边形的一般属性和行为,比如具有四条边,然后加入自己的属性与方法,比如,四条边都相等的四边形就是菱形。
3.多态性
将父类对象应用于子类的特征就是多态,首先有一个父类,有两个子类继承了该父类,故两个字类都具有父类共同的属性和行为,同时又根据不同的需求,在子类中分别添加不同的属性与方法,使得一个父类衍生出不同的子类时,子类也具有自己的特征,实现不同的效果,这就是多态化结构。
对象的属性就称为是成员变量,在定义成员变量时可以赋值也可以不赋值,定义方法与普通变量相同。
成员方法对应于类对象的行为,主要用来定义类可执行的操作。语法格式:
[权限修饰符] [返回值类型] 方法名 ([参数类型 参数名])[throws 异常类型]{
...//方法体
return 返回值;
}
其中权限修饰符有public private protected
成员方法中的参数又分为值参数、引用参数、不定长参数。
值参数表明实参与形参之间按照值进行传递,形参的修改不影响实参。
例:使用成员方法进行书的总和计算
package unit1;
public class Book {
private int add(int shelf,int box) { // 形参
box+=shelf;
return box;
}
public static void main(String args[]) {
Book book=new Book();
int shelf=10; //实参
int box=20;
int c=book.add(shelf, box);
System.out.println("当前一共有"+c+"本书");
}
}
引用参数,如果在给方法传递参数时,参数的类型是数组或者其他引用类型,那么,在方法中对参数的修改会反映到原有的数组或者其他引用类型中,称为引用参数。
例:使用引用参数,修改过的数组元素值会记录在数组中
package unit1;
public class ExchangeRate {
public void change(double cx[]) {
for(int i=0;icx[i]=cx[i]*6.903;
}
}
public static void main(String args[]) {
ExchangeRate ex=new ExchangeRate();
double domain[]= {1,10,100};
for(double k:domain) {
System.out.println("美元"+k+"等于");
}
ex.change(domain); //此处修改domain值,domain会变更为新的值
for(int i=0;iSystem.out.println(domain[i]);
System.out.println("元人民币");
}
}
}
不定长参数:在声明方法时,如果有若干个相同类型的参数,可以将其定义为不定长参数,声明方法如下:
权限修饰符 返回值类型 方法名 (参数类型... 参数名)
在类中除了成员方法以外,还存在一种特殊类型的方法,就是构造方法,这种方法与类同名,对象的创建就是通过构造方法完成的,特点如下:
构造方法没有返回类型,也不能定义为void
构造方法的名称要与本类的名称相同
构造方法的主初始化工作,他把定义对象的参数传递给对象成员
例如:class book{
public book(){
//对成员变量进行初始化
}
}
定义在成员方法中的变量称为局部变量,局部变量在使用时必须进行赋值操作或者被初始化,在执行时被创建,在本模块代码执行完时销毁。
当类中的成员变量与成员方法中的参数重名时,可以使用this来调用成员变量,例如:
package unit1;
public class Book2 {
String name;
public void ShowName(String name) {
this.name=name;
System.out.println(name);
}
public static void main(String args[]) {
Book2 book=new Book2();
book.ShowName("ds");
}
}
很多时候,不同的类之间需要对同一个变量进行操作,比如一个水池,同时打开注水口与排水口,两个动作会同时影响水池中的水,此时水池中的水就可以认为是一个共享变量,将共享变量用static修饰,他就是一个静态变量,调用静态变量的语法:
类名.静态类成员
如果想要使用成员方法完成一些事务逻辑,但是又不能去创建对象去调用时,可以通过静态方法来完成调用,语法格式:
类名.静态方法();
主方法是类的入口点,它指定了程序从何处开始,提供对程序流的控制。主方法是静态且无返回值的。