变量
静态变量(类变量):
1、静态变量随着类的加载而存在,随着类的消失而消失。
2、静态变量可以被对象调用,还可以被类名调用
3、静态变量数据存储在方法区(共享数据区)的静态区,所以也叫对象的共享数据。
成员变量(动态变量,实例变量):
1、成员变量定义在类中,在整个类中都可以被访问。
2、成员变量随着对象的建立而建立,随着对象的消失而消失,存在于对象所在的堆内存中。
所以也叫对象的特有数据。
3、成员变量有默认初始化值。
4. 成员变量只能被对象调用
局部变量:
1、局部变量只定义在局部范围内,如:函数内,语句内等,只在所属的区域有效。
2、局部变量存在于栈内存中,作用的范围结束,变量空间会自动释放。
3、局部变量没有默认初始化值
在使用变量时需要遵循的原则为:就近原则
首先在局部范围找,有就使用;接着在成员位置找。
由static修饰的变量称为静态变量,其实质上就是一个全局变量。如果某个内容是被所有对象所共享,那么该内容就应该用静态修饰;没有被静态修饰的内容,其实是属于对象的特殊描述。
不同的对象的实例变量将被分配不同的内存空间, 如果类中的成员变量有类变量,那么所有对象的这个类变量都分配给相同的一处内存,改变其中一个对象的这个类变量会影响其他对象的这个类变量,也就是说对象共享类变量。
// public static String name;
// public static String pass;
// public static int cardNo;
// 成员变量,定义在整个类中,也就是说方法中赋值,主函数中可以使用
简单java类
1.类名称必须存在有意义
2.类之中的属性必须private封装,封装后的属性必须提供有setter和getter;
3.类之中可以提供有任意多个构造方法,但是必须保留有一个无参构造方法;
4.类之中不允许出现任何的输出语句,所有信息必须交给被调用处输出;
5.类之中需要提供一个取得对象完整信息的方法,暂定为:getInfo;
实例 雇员类
//简单java类
class Emp{
private int empno;//所有属性都用private封装
private String ename;
private String job;
private double sal;
private double comm;
public Emp() {}//至少一个无参构造方法
public Emp(int eno,String ena,String j,double s, double c) {
empno = eno;
ename = ena;
job = j;
sal = s;
comm = c;
}
// 封装后的属性提供getter和setter
public void setEmpno(int e) {
empno = e;
}
public void setEname(String e) {
ename = e;
}
public void setJob(String j) {
job = j;
}
public void setSal(double s) {
sal = s;
}
public void setComm(double c) {
comm = c;
}
public int getEmpno() {
return empno;
}
public String getEname() {
return ename;
}
public String getJob() {
return job;
}
public double getSal() {
return sal;
}
public double getComm() {
return comm;
}
// 类之中需要提供一个取得对象完整信息的方法
public String getInfo() {
return "雇员编号: " + empno + "\n" + "雇员姓名: " + ename + "\n" + "雇员职位: " + job + "\n" + "基本工资: " + sal + "\n" + "佣 金: " + comm;
}
}
public class exercise1 {
public static void main(String[] args) {
Emp e = new Emp(1369,"smith","clerk",800.0,1.0);
System.out.println(e.getInfo());
}
}