package This_Demo01; /** * 学生类模板: * JAVA中的关键字: * this: * 调用属性: * this.属性名: * 当局部变量与成员变量名称相同时,使用this关键字代表成员变量 * 如果局部变量和成员变量名称不同,this可以省略 * 调用方法: * this.方法(); * 本类中可以省略this * 调用构造函数: * this(); // 调用无参构造 * this("小子",2); // 调用有参构造 * this语句必须要在构造函数第一句 * * static可以修饰: * 【1】属性 ->静态变量 / 类变量 --定义在类中 * 【2】方法 ->静态方法 / 类方法 --定义在类中 * 【3】代码块 ->静态代码块 * 【4】内部类 ->静态内部类 * * static 修饰属性 ,方法等,在类加载的时候就被一同加载到内存中来的 * 使用方法: * 类名.属性名/方法名() * 对象名.属性名/方法名() * 注意: * static方法只能使用或调用static修饰的变量或调用static方法 * 不可以使用非static修饰的属性(成员属性) * 而static 的方法在类的加载时产生,存在共享区中 * 在静态方法加载到内存中式还没有对象的产生,所以不能使用 * 非静态方法不仅可以调用非静态的属性和方法还可以调用静态的方法和属性 * 因为后产生的可以调用先产生的。 * * @author 韦桂金 * */ public class Student { // 编写属性 private int idNum; // 学号 private String name; // 姓名 private char gender; // 性别 //private String city; // 所在地 public static String city; // 所在地 -- // 无参构造 public Student() {} // 有参构造 public Student(int idNum,String name,char gender,String city) { this("镇江",‘男‘); //this(); //调用无参 this.idNum = idNum; this.name = name; this.gender = gender; this.city = city; } public Student(String name,char gender) { this.name = name; this.gender = gender; } // 公有的取值赋值 // 学号 public int getIdNum() { return idNum; } public void setIdNum(int idNum) { this.idNum = idNum; } // 姓名 public String getName(){ return name; } public void setName(String name) { this.name = name; } // 性别 public char getGender() { return gender; } public void setGender(char gender) { this.gender = gender; } // 城市 public String getCity() { return city; } public void setCity(String city) { this.city = city; } // 方法 public void Init() { System.out.println("我是学号为:"+getIdNum()+"的"+getName()+",性别:"+getGender()+",来自于:"+getCity()); } }
package This_Demo01; /** * 测试类 * @author 韦桂金 * */ public class Test { public static void main(String[] args) { // 创建对象 Student su = new Student(123421,"西克",‘男‘,"非洲"); su.Init(); System.out.println(su); // 输出是:内存地址 su.city = "上海"; // 对象名.属性 Student.city = "北京"; // 类名.属性 System.out.println(Student.city); // } }
04、代码块:
package The_code_block_Demo01; /** * 代码块: * 概念: 使用{} 括起来的一段代码 * 分类: * 普通代码吗块 直接在方法或语句中定义的代码块 * 构造代码块 直接写在类中的代码块 * 静态代码块 使用static 声明的代码块 * 同步代码块 多线程对象的时候讲 * * 执行流程: * 静态代码块 -->加载一次 * 构造代码块 -->每创建一个对象执行一次 * 构造方法 -->每创建一个对象执行一次 * @author 韦桂金 * */ public class DemoBlock { static int city; public DemoBlock(){ System.out.println("==========我是构造方法========="); } // 【2】构造代码块 { System.out.println("============我是构造代码块============="); } //【3】静态代码块 static { city = 12; System.out.println("============我是静态代码块==============="); } public static void main(String[] args) { // 创建对象 DemoBlock sum = new DemoBlock(); //【1】普通代码块 { //定义在方法中的代码 int age = 20; System.out.println(age); } for(int i = 1; i < 10; i++) { { int age = 50; System.out.println(age); } } } }