public class Student { // 静态变量(类变量),所有学生共享同一个学校名称 public static String schoolName = "阳光中学"; // 实例变量,每个学生有自己的姓名 private String name; }
// 访问静态变量 public class Test { public static void main(String[] args) { System.out.println(Student.schoolName); // 直接通过类名访问 } }
—-. 修饰静态方法 特点:静态方法属于类,而非实例,可直接通过类名调用,无需创建对象。 但静态方法中不能直接访问非静态成员(变量 / 方法),因为非静态成员依赖于实例。 静态方法中不能使用 this 或 super 关键字(因 this 指向当前实例,而静态方法无实例关联)。 用途:常用于工具类,或需要独立于实例的功能。 示例代码:
1 2 3 4 5 6 7 8 9 10 11 12 13
public class MathUtil { // 静态方法:计算绝对值 public static int abs(int num) { return num < 0 ? -num : num; } }
// 调用静态方法 public class Test { public static void main(String[] args) { System.out.println(MathUtil.abs(-5)); // 直接通过类名调用 } }
public class Database { // 静态代码块:初始化数据库连接 static { System.out.println("加载数据库驱动..."); // 连接数据库的代码... }
public Database() { System.out.println("创建数据库实例"); } }
// 测试类加载时执行静态代码块 public class Test { public static void main(String[] args) { new Database(); // 首次使用类,触发静态代码块执行 new Database(); // 再次创建实例,静态代码块不再执行 } } // 输出: // 加载数据库驱动... // 创建数据库实例 // 创建数据库实例
public class Outer { private static int staticNum = 10; private int num = 20;
// 静态内部类 public static class Inner { public void print() { System.out.println(staticNum); // 可访问外部类静态成员 // System.out.println(num); // 错误:不能直接访问外部类非静态成员 } } }
// 使用静态内部类 public class Test { public static void main(String[] args) { Outer.Inner inner = new Outer.Inner(); // 无需创建Outer实例 inner.print(); // 输出:10 } }
// 测试类(public类,文件名需为VehicleTest.java) public class VehicleTest { public static void main(String[] args) { // 抽象类不能实例化,只能通过子类对象使用 Vehicle car = new Car("特斯拉Model 3", 120); Vehicle bike = new Bicycle("捷安特", 15);
// 测试类(public类) public class PaymentTest { public static void main(String[] args) { // 接口引用指向实现类对象(多态) Payment wechat = new WeChatPayment(); Payment alipay = new AlipayPayment();
评论区
欢迎你留下宝贵的意见,昵称输入QQ号会显示QQ头像哦~