第四章节主要内容有类的定义和使用,构造方法和对象创建,类与程序的基本结构,参数传值,对象的组合,实力成员和类成员,方法重载,this关键字的使用和对包的理解,import语句和JRE扩展与jar文件
面向对象编程主要体现三个特性:
封装性(将数据和对数据的操作封装在一起)
继承(子类可以继承父类的属性和行为,即数据和操作)
多态(一种是操作名称的多态,另一种是和继承有关的多态)
类的定义包括:类声明和类体
基本格式为 class 类名{
类体的内容
}
类名编程风格:
1.类名是拉丁字母,则名字的首字母大写,如Hello
2.由几个单词符合而成时,每个单词首字母应大写,如ChinaMade
类体由两部分组成:
1.变量的声明:用来储存属性的值
2.方法的定义:对类中声明的变量进行操作,即给出算法
变量:成员变量或域变量(局部变量)
成员变量的类型
可以是整形,浮点型,字符型,逻辑类型,引用类型:数组,对象和接口
如:class Factory {
float 【】a;//factory的成员变量a是float类型的数组
Workman zhang;//zhang是workman类声明的变量
}
class Workman{
double x;
}
成员变量在整个类内都有效,其有效性与它在类体中书写的先后位置无关
方法由方法头和方法体组成
方法头由方法的类型,名称和括号和括号其中的参数列表构成,例:
int speak()//无参数的方法头
{ return 23;
}
int add(int x,int y,int z)//有参数的方法头
{ return x+y+z;
}
当一个方法是void类型时,该方法不需要返回数据
方法体:一对大括号以及它们之间的内容成为方法体,方法体的内容包括局部变量的声明和java语句
局部变量:在方法体中声明的变量和方法的参数呗称作局部变量 例如:
int getsum(int n){ //参数变量n是局部变量
int sum=0; //声明局部变量sum
for(int i=1;i<=n;i++){
sum=sum+i;
}
return sum;
}
局部变量旨在方法内有效。方法的参数在整个方法内有效,方法内的局部变量从声明它的位置之后开始有效
如果局部变量的名字和成员变量的名字相同,那么成员变量被隐藏,即成员变量在这个方法内暂时失效,如果想在这个方法内使用成员变量,则必须使用关键字this
成员变量有默认值,但局部变量没有默认值
class A{
int a;
float b;
a=12; //非法,这是赋值语句(语句不是变量的声明,只能出现在方法体中)
b=12.56f; //非法
}
类的UML图
类名(常规字形表明是具体类,斜体字形标明是抽象类 |
变量层,也称属性层;列出成员变量及类型,格式:变量名:类型 |
方法层,也称操作层,列出类中的方法,格式:方法名(参数列表):类型 |
构造方法和对象的创建:类是创建对象的模板,没有类就没有对象
对象:类所声明的变量被成为对象
构造方法:用类创建对象时需使用它的构造方法
构造方法的名字必须跟它所在类的名字完全相同,而且没有类型,可以在一个类中有多个构造方法,但参数必须不同。
当类中没有编写构造方法,系统默认该类有一个构造方法,并且是无参的,也没有语句
构造方法没有类型,void point()或者int point()都不是构造方法。
创建对象:包括对对象的声明和为对象分配变量两个步骤
格式:类名 对象名; 如:Lader lader;
为声明的对象分配变量:使用new运算符和类的构造方法为声明的对象分配变量
如:XioujiRenwu zhubajie; //声明对象
zhubajie = new XiyoujiRenwu(); //为对象分配变量(使用new和默认的构造方法)
又如: Point p1,p2; //声明对象p1和p2
p1=new Point(10,10); //为对象p1分配变量(使用new和类中的构造函数)
p2=new Point(23,35); //为对象p2分配变量(使用new和类中的构造函数)
使用对象
1.对象操作自己的变量(体现对象的属性),通过使用点运算符“.”(引用运算符或访问运算符)访问自己的变量
格式 对象.变量;
2.对象调用类中的方法(体现对象的行为),使用点运算符调用创建它的类中的方法
格式 对象.方法;
3.体现封装:类中的方法可以操作成员变量,当对象调用方法时,方法中出现的成员变量就是指分配给该对象的变量
空对象不能使用,不能让一个空对象去调用方法产生行为