实例变量与类变量
类体中包括成员变量的声明和方法的定义,而成员变量又可以细分为实例变量、类变量
声明成员变量时,用关键字static给予修饰的称作类变量,否则称作实例变量(类变量也称static变量,静态变量)
如:
class Dog{
float x //实例变量
static int y //类变量
}
实例变量和类变量区别:
1.不同对象的实例变量互不相同
2.所有对象共享类变量
3.通过类名直接访问类变量
实例代码:
public class Ladder{
double top;//实例变量
static double bootom;//类变量
public double getTop(){
return top;
}
public void setTop(double Top){
this.top = top;
}
public static double getBottom(){
return bottom;
}
public static void setBottom(double Bottom){
Ladder.bottom = bottom;
}
}
public class Deom18{
public static void main(String[] args){
Ladder.bottom = 100;
Ladder ladder1 = new Ladder();
Ladder ladder2 = new Ladder();
ladder1.setTop(50);
ladder2.setTop(50);
System.out.println("ladder1的上底:"+ladder1.getTop());
System.out.println("ladder2的上底:"+ladder2.getTop());
System.out.println("ladder1的下底:"+ladder1.getTop());
System.out.println("ladder2的下底:"+ladder2.getTop());
}
}
实例方法与类方法
类中方法可分为实例方法和类方法,方法声明时,方法类型前不加关键字static修饰的是实例方法,加static修饰的是类方法(静态方法)
如:
class A{
int a;
float max(float x,float y){ //实例方法
…
}
static float jerry(){ //类方法
…
}
static void speak(String s){ //类方法
…
}
}
实例方法与类方法区别:
1.对象调用实例方法
当对象调用实例方法时,该方法中出现的实例变量就是分配给该对象的实例变量;该方法中出现的类变量也是分配给该对象变量,只不过这个变量和所有的其他对象共享而已
2.类名调用类方法
类方法不仅可以被类创建的任何对象调用执行,也可以直接通过类名调用,和实例方法不同的是:类方法不可以操作实例变量,这是因为在类创建
对象之前,实例成员变量还没有分配内存
代码:
public class Deom17{
public static void main(String[] args){
System.out.println("1-10之和:"+Sum.getSum(1,10));
}
}
class Sum{
static int getSum(int start,int end){
int sum = 0;
for(int i=start;i<end;i++){
sum+=i;
}
return sum;
}
}