类的定义格式如下:
修饰符 class 类名 { // 1.成员变量(属性) // 2.成员方法 (行为) // 3.构造方法 (初始化类的对象数据的) }
例如:
public class Student { // 1.成员变量 public String name ; public char sex ; // '男' '女' public int age; }
类名 对象名称 = new 类名();
例如:
Student stu = new Student();
private
关键字来修饰成员变量。public
修饰getter和setter方法。1.private修饰成员变量
public class Student { private String name; private int age; }
2.public修饰getter和setter方法
public class Student { private String name; private int age; public void setName(String n) { name = n; } public String getName() { return name; } public void setAge(int a) { if (a > 0 && a <200) { age = a; } else { System.out.println("年龄非法!"); } } public int getAge() { return age; } }
static是静态的意思。 static可以修饰成员变量或者修饰方法。
有static修饰成员变量,说明这个成员变量是属于类的,这个成员变量称为类变量或者静态成员变量。 直接用 类名访问即可。因为类只有一个,所以静态成员变量在内存区域中也只存在一份。所有的对象都可以共享这个变量。
如何使用呢
例如现在我们需要定义传智全部的学生类,那么这些学生类的对象的学校属性应该都是“传智”,这个时候我们可以把这个属性定义成static修饰的静态成员变量。
定义格式
修饰符 static 数据类型 变量名 = 初始值;
举例
public class Student { public static String schoolName = "交大"; // 属于类,只有一份。 // ..... }
静态成员变量的访问:
格式:类名.静态变量
public static void main(String[] args){ System.out.println(Student.schoolName); Student.schoolName = "交大"; System.out.println(Student.schoolName); // 交大 }
无static修饰的成员变量属于每个对象的, 这个成员变量叫实例变量,之前我们写成员变量就是实例成员变量。
需要注意的是:实例成员变量属于每个对象,必须创建类的对象才可以访问。
格式:对象.实例成员变量
有static修饰成员方法,说明这个成员方法是属于类的,这个成员方法称为类方法或者静态方法**。 直接用 类名访问即可。因为类只有一个,所以静态方法在内存区域中也只存在一份。所有的对象都可以共享这个方法。
与静态成员变量一样,静态方法也是直接通过类名.方法名称即可访问。
举例
public class Student{ public static String schoolName = "交大"; // 属于类,只有一份。 // ..... public static void study(){ System.out.println("我们都在交大上学!"); } }
静态成员变量的访问:
格式:类名.静态方法
public static void main(String[] args){ Student.study(); }
无static修饰的成员方法属于每个对象的,这个成员方法也叫做实例方法。
需要注意的是:实例方法是属于每个对象,必须创建类的对象才可以访问。
格式:对象.实例方法
示例:
public class Student { // 实例变量 private String name ; // 2.方法:行为 // 无 static修饰,实例方法。属于每个对象,必须创建对象调用 public void run(){ System.out.println("学生可以跑步"); } // 无 static修饰,实例方法 public void sleep(){ System.out.println("学生睡觉"); } public static void study(){ } }public static void main(String[] args){ // 创建对象 Student stu = new Student ; stu.name = "李四"; // Student.sleep();// 报错,必须用对象访问。 stu.sleep(); stu.run(); }
1.当 static
修饰成员变量或者成员方法时,该变量称为静态变量,该方法称为静态方法。该类的每个对象都共享同一个类的静态变量和静态方法。任何对象都可以更改该静态变量的值或者访问静态方法。但是不推荐这种方式去访问。因为静态变量或者静态方法直接通过类名访问即可,完全没有必要用对象去访问。
2.无static修饰的成员变量或者成员方法,称为实例变量,实例方法,实例变量和实例方法必须创建类的对象,然后通过对象来访问。
3.static修饰的成员属于类,会存储在静态区,是随着类的加载而加载的,且只加载一次,所以只有一份,节省内存。存储于一块固定的内存区域(静态区),所以,可以直接被类名调用。它优先于对象存在,所以,可以被所有对象共享。
4.无static修饰的成员,是属于对象,对象有多少个,他们就会出现多少份。所以必须由对象调用。