类成员的三种访问属性

  • 在一个类中,有三种不同访问属性的成员:public、protected、private。

在类的内部(类的声明和类的定义)可以访问public、protected、private所有成员
在类的外部(对象和其他函数)不能访问private和protected成员

  • 在继承中的三种不同的派生方式,对派生类对基类成员的访问属性得改变:

    • public:
      public ->public;
      protected->protected;
      private->不可访问;

    • protected:
      public->protected;
      protected->protected;
      private->不可访问;

    • private:
      public->private;
      protected->private;
      private->不可访问;

基类成员在派生类中的访问属性按照上面的方式改变,改变之后继承自基类的private成员在派生类中不能被访问,只能通过基类的protected或者public成员函数访问。而其他的访问方式同本文开头

  • 4
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
在JavaScript中,使用class语法定义时,可以通过在构造函数中直接定义属性来定义成员属性,也可以使用静态属性来定义成员属性成员属性是每个实例对象独有的属性,可以通过在构造函数中使用this关键字来定义。例如,以下代码定义了一个Person,其中的name和age属性成员属性: ``` class Person { constructor(name, age) { this.name = name; this.age = age; } } var person1 = new Person("John", 30); console.log(person1.name); // 输出:John console.log(person1.age); // 输出:30 ``` 成员属性是所有实例对象共享的属性,可以使用静态属性来定义。例如,以下代码定义了一个Animal,其中的count属性成员属性: ``` class Animal { static count = 0; constructor(name) { this.name = name; Animal.count++; } } var animal1 = new Animal("cat"); var animal2 = new Animal("dog"); console.log(Animal.count); // 输出:2 ``` 在上面的代码中,count属性被定义为Animal的静态属性,它可以在的任何方法中访问,而且所有Animal的实例共享该属性。在构造函数中,每次创建Animal对象时,都会将count属性加1,从而实现对象计数的功能。 需要注意的是,成员属性成员属性是有区别的,它们的作用域和生命周期不同。成员属性是每个实例独有的,而成员属性是所有实例共享的。在使用时需要根据需要进行选择。同时,在class语法中,成员属性必须使用static关键字进行定义,成员属性则不需要。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值