马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 零度非安全 于 2017-2-24 13:29 编辑
点击图片穿越到 索引帖,听说有惊喜!
☟
在上一讲还有 3 个方法没讲到,那么这讲就这 3 个方法说明解决
分别是 构造方法、类方法以及实例方法
☠
构造方法
构造方法是一种特殊的方法
它的名字必须与它所在的类的名字完全相同
而且没有类型,构造方法也可以重载。
|
|
例如:class 梯形{
float 上底,下底,高;
梯形(){ //构造方法
上底 = 60;
下底 = 100;
高 = 20;
}
梯形(float x,float y,float h){ //构造方法
上底 = x;
下底 = y;
高 = h;
}
}
当用类创建对象时,使用构造方法,下一讲非安全会讲到,不急哈!
|
|
类方法和实例方法
成员变量可分为实例变量和类变量,同样,类中的方法也可分为实例方法和类方法。
在声明方法时,方法类型前面不加关键字 static 修饰的实例方法,加 static 修饰的是类方法(静态方法)
例如:class A{
int a;
float max(float x,float y){ //实例方法
.
.
.
}
static float jerry(){ //类方法
.
.
.
}
static void speak(String s){ //类方法
.
.
.
}
}
A 类中的 jerry 方法和 speak 方法是类方法,max 方法是实例方法。需要注意的是,static 需放在方法的类型的前
面。在学习过对象之后,鱼油即可知道实例方法和类方法区别。
|
|
几个值得注意的问题
对成员变量的操作只能放在方法中
方法可以对成员变量和该方法中声明的局部变量进行操作
在声明类的成员变量时可以同时赋予初值。
例如:class A{
int a = 12;
float b = 12.56f;
}
但是不可以这样做:class A{
int a;
float b;
a = 12; //非法,这是赋值语句(语句只能出现在方法体中),不是变量的声明
b = 12.56f; //非法
}
这是因为类体的内容由成员变量的声明和方法的定义两部分组成,下面这个才是正确的。class A{
int a;
float b;
void f(){
int x,y;
x = 34;
y = -23;
a = 12;
b = 12.56f;
}
}
实例方法既能对类变量操作也能对实例变量操作,而类方法只能对类变量进行操作。例如:class A{
int a;
static b;
void f(int x,int y){
a = x; //合法
b = y; //合法
}
static void g(int x){
b = 23; //合法
a = z; //非法
}
}
一个类中的方法可以互相调用,实例方法可以调用该类中的其他方法;类中的类方法只能调用该类的类方法,不能调用实例
方法。例如:class A{
float a,b;
void sum(float x,float y){ //这是一个实例方法
a = max(x,y); //合法(调用类方法)
b = min(x,y); //合法(调用实例方法)
System.out.print(a + b);
}
static float getMaxSquare(float x,float y){ //这是一个类方法
return max(x,y) * max(x,y); //合法(调用类方法)
}
static float getMinSquare(float x,float y){ //这是一个类方法
return min(x,y) * min(x,y); //非法(调用实例方法)
}
static float max(float x,float y){ //这是一个类方法
return a > b ? a : b;
}
float min(float x,float y){ //这是一个实例方法
return a < b ? a : b;
}
}
【特别注意】贴子中的栗子希望鱼油们能自觉的手动敲上去,不要单纯的复制粘贴保存,然后编译运行。
❁
❁
|