Java从入门到精通Chapter7_1 public class Chapter7_1 { // 如果在执行类时,希望先执行类的初始化动作,可以使用static定义一个静态区域 // 当这段代码被执行时,首先执行static快中的程序,并且只会执行一次 static { // some } private int id; private String name; private String category; public static double PI = 3.1415; public Chapter7_1() { // 如果在类定义中的构造方法都不是无参的构造方法,则编译器不会为类设置一个 // 默认的无参构造方法,当试图调用无参构造方法实例化一个对象时,编译器会 // 报错。只有在类中没有任何构造方法时,编译器才会在该类中自动创建一个 // 不带参数的构造方法. this("this 调用有参构造方法"); System.out.println("无参构造方法"); } public Chapter7_1(String name) { System.out.println("有参数构造方法"); } public String getName() { int id = 0; setName("Java"); return id + this.name; } public void setName(String name) { this.name = name; } public Chapter7_1 getChapter7_1() { return this; } public static void main(String[] args) { Chapter7_1 class1 = new Chapter7_1(); System.out.println(); Chapter7_1 class2 = new Chapter7_1("test"); // 在Run/Run Configurations/arguments设置 System.out.println("主函数参数个数:" + args.length); for(int i = 0; i < args.length; i++) System.out.println(args[i]); // 在静态方法中不可以使用this关键字 // 在静态方法中不可以直接调用非静态方法 // 在Java中,不能将方法体内的局部变量声明为static System.out.println(); System.out.println(Chapter7_1.PI); } // 类的访问控制,如果是private修饰,则成员只能在本类中使用,在子类中是不可见的, // 并且对于其他包的类也是不可见的。 // 如果是public的,则除了可以在本类中使用这些数据之外,还可以在子类和其他包中 // 类使用。 // 如果是protected的,那么只有本包内的该类的子类和其他类可以使用 // 只有public修饰符的类可以被子类进行访问,如果父类不允许通过继承产生的子类访问 // 他的成员变量,必须使用private修饰父类的变量 // 当声明类时不使用任何修饰符,则这个类预设为包存取范围,即只有一个包中的类可以 // 调用这个类的成员变量或成员方法,默认访问权限 // 类权限的设定会约束类成员上的权限设定 }