-
如果有参构造存在,则系统不会调用空构造
-
静态方法只能调用静态成员变量,非静态变量既可以调用静态成员变量,又可以调用非成员变量
-
静态方法直接使用类名就可调用
-
非静态方法需要通过实例化的对象进行调用
1. 要求:根据实例化对象的个数计算男女人数和总人数
2. 类代码:
package Fengzhang_Anli; public class Stud { // 成员变量 String name; int age; String sex; private static int count=0; private static int male_count=0; private static int female_count=0; // 空构造 Stud(){ count +=1; } // 有参构造,如果有参构造存在,则系统不会调用空构造 public Stud(String name, int age, String sex){ this(); // 调用一次空构造 this.name = name; this.age = age; this.sex = sex; setSex(sex); } // 成员方法(静态方法只能调用静态成员变量,非静态变量既可以调用静态成员变量,又可以调用非成员变量) public void setSex(String sex) { if("man".equals(sex)) { male_count += 1; }else if("woman".equals(sex)) { female_count += 1; } } // 静态方法 public static int getCount() { return count; } // 非静态方法 public int getMalecount() { return male_count; } // 静态方法 public static int getFemalecount() { return female_count; } }
3. Demo代码
package Fengzhang_Anli; public class Student_Demo { public static void main(String[] args) { Stud stu1 = new Stud("zzg1",21,"man"); Stud stu2 = new Stud("zzg2",21,"man"); Stud stu3 = new Stud("zzg3",21,"man"); Stud stu4 = new Stud("zzg4",21,"woman"); // 静态方法直接使用类名就可调用 System.out.println("总人数:" + Stud.getCount()); // 非静态方法需要通过实例化的对象进行调用 System.out.println("男性人数:" + stu1.getMalecount()); System.out.println("女性人数:" + Stud.getFemalecount()); } }
4. 运行结果