Java中一个类的定义包括两个部分:类的声明和类体的定义。类体中通常包含三部分:成员变量、构造方法和成员方法。
[修饰符]class类名{
//1、成员变量
//2、构造方法
//3、成员方法
}
***变量是在程序运行中其值可以改变的量。类中的成员变量通常称为字段,方法或代码块中的变量称为局部变量,方法声明中的变量通常称为参数。
成员变量的定义格式为:[修饰符] 类型 变量名 [=初值]
public int id;
public String name;
private double balance;
其中用public修饰的变量为公共变量,公共变量可以被任何方法访问;用private修饰的变量成为私有变量,私有变量只能被同一个类访问。
如果成员变量用static修饰,则该变量称为静态变量或类变量,否则称为实例变量。其实静态变量和成员变量的区别是:在创建类的对象时,java运行时系统为每个对象的实例变量分配一块内存,然后通过该对象来访问实例变量。而对于静态变量,java运行时系统在类装载时为这个类每个静态变量分配一块内存,以后再生成该类的对象时,这些对象将共享同名的静态变量,每个对象对静态变量的改变都会影响到其他对象。
packpage com.boda.xy;
public class Counter{
public int x; //x为实例变量
public static int y=0; //y为静态变量
public Counter(){
x=100;
}
}
局部变量存在于方法或代码块中,声明一个局部变量时,系统为该变量分配内存,只要该方法没有返回,该变量会一直保存在内存中,一旦该方法返回,变量将从内存栈中被删除,不能再被访问,这也是他的生存期。局部变量的声明并创建时可以用var进行类型推断,这也可以是与成员变量区分的一个标志。
var name="张三"; //这里类型推断var应为String
除以上之外用UML图也能够清晰的表示描述一个类,只要弄清楚整个代码体系就能够区分清楚成员变量和局部变量了,如下演示一个UML图
Account //类名 |
-id=int //变量清单,+表示public成员,-表示private成员,#表示protected成员 -name:String -balance:double |
+Account() //构造方法 +deposit(amount:double):viod +withdraw(account:double):viod |
//看看java实验例题
定义一个泛型类Point<T>,其中包含x和y两个类型为T的成员,定义带两个参数的构造方法,为x和y定义setter和getter方法,另外定义translate()方法将点移到新的坐标,编写main()方法,创建 Point<Integer>对象,调用translate()方法。
public class Point<T> {
private T x;//定义泛型成员变量
private T y;
public Point(T x, T y) {
this.x = x;
this.y = y;//this指使用的是成员变量
}
public T getterX() {
return x;
}
public void setterX(T x) {
this.x = x;
}
public T getterY() {
return y;
}
public void setterY(T y) {/
this.y = y;
}
public void translate(Point<T> p){//定义translate()方法将点移到新的坐标
System.out.println("点的x坐标为:"+p.getterX());//调用getter方法
System.out.println("点的y坐标为:"+p.getterY());
}
public static void main(String[] args) {
// TODO 自动生成的方法存根
Point<Integer> p=new Point<Integer>(1,2);
//创建 Point<Integer>对象,给x,y赋值
p.translate(p);//调用translate()方法
}
}