Java 4-2 类
1.类体的主要内容由两部分组成:
· 变量的声明
· 方法的定义
2.成员变量和局部变量
1) 成员变量:在变量的声明部分的变量
局部变量:在方法体中声明的变量
2)变量的有效范围
成员变量在整个类中有效,局部变量在声明它的方法内有效
public class A{
int m=10,sum=0;//成员变量,在整个类中有效
void f(){
if(m>9){
int z=10;//z仅仅在该复合语句中有效
z=2*m+z;
}
for (int i=0;i<m;i++){
sum=sum+i;//i仅仅在该循坏语句中有效
}
m=sum;//合法,因为m和sum都有效
z=i+sum;//不合法,i和z都已经无效
3. 实例变量与类变量
成员变量又分为实例变量和类变量。
类变量:用static修饰的变量
实例变量:其他变量
4.成员变量的隐藏
如果局部变量的名字与成员变量的名字相同,则成员变量被隐藏,则成员变量在这个方法内短暂失效
Class Tom{
int x=98,y;
void f(){
int x=3;
y=x;//y得到的值为3,而不是98
}
}
如何解决这个问题,使用被隐藏的成员变量,必须使用this关键字
Class 三角形{
float sideA,sideB,sideC,lengthSum;
void setSide(float sideA,float sideB,float sideC)//每一个参数都必须声明参数数据类型
this.sideA=sideA;
this.sideB=sideB;
this.sideC=sideC;
}
成员变量的有效性和它在类体中的书写顺序无关
局部变量的有效性和它在类体中的书写顺序有关
5.方法重载
方法重载:一个类中可以有多个方法具有相同的名字,但这些方法的参数必须不同,即参数个数不同,参数类型不同,参数位置不同
6.构造方法
构造方法:与所在类的名字完全相同,并且没有返回值。
7.类方法与实例方法
类方法:用static修饰
实例:没有用static修饰
8.需要注意的几个问题:
- 对成员变量进行操作时不能进行除了属性和方法之外的其他操作
class AA{
int a;
float b;
a=12;//非法,这些都是赋值语句,语句只能出现在方法中
b=12.56f;
}
修正:
class AA{
int a=12;
float b=12.56f;
}
- 实例方法既能对类变量进行操作,也能对实例变量进行操作,而类方法只能对类变量进行操作
- 类中的方法可以互相调用,实例方法可以调用该类中的其他方法。类中的类方法只能调用该类的类方法,不能调用实例方法。