Java——类的基础知识
目录
一、类的声明
类名的命名:
- 如果使用拉丁字母,首字母大写,例如Person、Time。
- 类名采用驼峰风格命名。当类名由几个”单词“复合而成的时候,每个单词的首字母应该大写。
class Person{
...
}
二、类体
- 类声明之后的一对大括号以及它们之间的内容称作类体。
- 大括号之间的内容称作类体的内容。
- 类体的内容包括:(1)变量的声明。(2)方法的定义。
class Ladder{
float above;
float bottom;
float height;
float area;
float computerArea(){
area = (above + bottom) * height / 2.0f;
return area;
}
void setHeight(float h){
height = h;
}
}
上述Ladder类(用来描述梯形),声明了4个float类型的变量;定义了2个方法。
三、成员变量
3.1 成员变量的类型
可以是Java中任意一种类型。
基本类型:整型、浮点型、字符型、逻辑类型;
引用类型:数组、对象和接口。
3.2 成员变量的默认值和有效范围
- boolean变量,默认值:false
- byte、short、int、long,默认值:0
- char,默认值:‘\0’
- float、double,默认值:0.0
- “引用型”变量(数组及对象),默认值:null
有效范围:成员变量在整个类的所有方法里都有效。
注:
声明的成员变量,例如bottom,如果为bottom指定的初始值和其他成员变量(比如above)有关,
float bottom = above + 10;
则声明成员变量above的位置 应该在 声明成员变量bottom的位置的前面。
四、方法
4.1 方法头和方法体
方法头之后的一对大括号以及它们之间的内容称为方法的方法体。
int speak() //无参数的方法头
{
return 23;
}
int add(int x,int y,int z) //有参数的方法头
{
return x+y+z;
}
4.2 区分成员变量和局部变量
如果局部变量的名字与成员变量的名字相同,那么成员变量被隐藏,该成员变量在这个方法内暂时失效。
Class Tom{
int x = 10,y;
void f()
{
int x = 5;
y = x + x; //y得到的值是 10
}
}
如果想要使用被隐藏的成员变量,则需加上关键字 this。
Class Tom{
int x = 10,y;
void f()
{
int x = 5;
y = x + this.x; //y得到的值是 5+10 = 15
}
}
4.3 局部变量没有默认值
成员变量有默认值,但局部变量没有。因此使用局部变量之前必须保证局部变量有具体的值。
以下类无法通过编译:
class InitError(){
int x = 10, y; //成员变量 y 有默认值,为 0
void f()
{
int m; //m 没有默认值,但编译无错误
x = y + m; //无法通过编译,因为在使用m之前未指定m的值
}
}
五、需要注意的问题
对成员变量的操作只能放在方法中。
class A{
int a = 12; //在声明的同时可以指定初值
float b = 12.56f;
}
以下操作不正确:
class A{
int a;
float b;
a = 12; //非法
b = 12.56f; //非法
}