• static关键字用来指定静态成员

    • 通过static声明的属性是静态属性
    • 通过static申明的方法是静态方法
  • 静态成员可以通过类名直接访问(不用实例化)

    • 实例化对象会消耗资源,声明静态成员,可以提高程序运行的性能
  • 静态方法不能访问非静态成员,非静态成员可以访问静态成员

    • 静态方法中不能访问this关键字
    • 不能通过this关键字来访问静态属性
class Person {
  static String name = '张三';
  int age = 10;

  static getName() {
    //print(this.age); //不能通过this关键字直接进行访问
    print(name);

    //静态方法中不能访问非静态的属性
    //print(age);

    //静态方法不能访问非静态方法
    // findName();
  }

  findName() {
    print(name);
    print(age);

    //非静态方法中可以访问非静态方法
    getName();
  }
}

void main(List<String> args) {
  //静态成员可以直接通过类名进行访问
  print(Person.name);

  //静态方法也可以直接通过类名进行访问
  print(Person.getName());

  //不能通过类名称直接访问非静态方法
  // print(Person.findNmae());

  //实例化后不能访问静态属性
  var p = new Person();
  // print(p.name);
  p.findName();
}

标签: none

添加新评论