JAVA 关键字 static private super this

Java关键字

目录:
1:static关键字
2:private关键字
3:关键字和 this 和 super 的比较

static关键字
a) 修饰属性:Java静态属性和类相关, 和具体的实例无关. 换句话说, 同一个类的不同实例共用同一个静态属性.
b)修饰方法 :静态方法属于类而不属于类的对象
静态方法可以直接调用静态方法,无需创建类的实例
静态方法可以访问静态数据成员并可以更改静态数据成员的值,但不可以直接使用非静态数据成员或调用非静态方法
c)静态代码块 :静态代码块不管成多少个对象,只会执行一次,并且最先执行
静态代码块执行完毕-》构造代码块(实例代码块)执行-》构造函数执行
讨论:为什么man函数是静态的
如果没有static,main函数就是一个普通的成员方法,想要进行运行就必须new一个对象对main函数进行引用,这样会造成主函数没有入口无法运行。

class TestDemo{
    public int a;
    public static int count;
}
public class Main{
    public static void main(String[] args) {
        TestDemo t1 = new TestDemo();
        t1.a++;//创建实例对象t1来调用a
        TestDemo.count++;//无需创造实例对象即可调用
        System.out.println(t1.a);
        System.out.println(TestDemo.count);
        System.out.println("=============================");
        TestDemo t2 = new TestDemo();
        t2.a++;
        TestDemo.count++;
        System.out.println(t2.a);
        System.out.println(TestDemo.count);
    }
  }
  //输出结果为
  1
  1
  ===============================
  1
  2
————————————————

private关键字
1.封装属性:被private修饰的变量或成员方法,通过类内部直接访问,不能被类的调用者使用,但可以通过提供public方法供类的调用者使用。
2.如果要修改被private修饰的变量的值可以通过setter和getter方法。
3. 注意事项
private 不光能修饰字段, 也能修饰方法
通常情况下我们会把字段设为 private 属性, 但是方法是否需要设为 public, 就需要视具体情形而定. 一般我们希望一个类只提供 “必要的” public 方法, 而不应该是把所有的方法都无脑的设为public

class Animal {
    private int high;
    private String name;

    public int getHigh() {
        return high;
    }

    public void setHigh(int high) {
        this.high = high;
    }

    public void show() {
        System.out.println("身高" + high);
    }
}
public class Demo {
    public static  void main(String[] args) {
        Animal dog = new Animal();
        dog.setHigh(15);
        dog.show();
    }
}
"D:\IntelliJ IDEA 2019.2.3\jbr\bin\java.exe" "-javaagent:D:\IntelliJ IDEA 2019.2.3\lib\idea_rt.jar=50561:D:\IntelliJ IDEA 2019.2.3\bin" -Dfile.encoding=UTF-8 -classpath C:\Users\Administrator\Desktop\javaHomework\Demo\out\production\Demo Demo
身高15

Process finished with exit code 0

super 关键字
super 表示获取到父类实例的引用

  1. 使用了 super 来调用父类的构造器
public Bird(String name) {
super(name);
}
2) 使用 super 来调用父类的普通方法

```java
public class Bird extends Animal {
public Bird(String name) {
super(name);
}
@Override
public void eat(String food) {
//  让子调用父类的接口.
super.eat(food);
System.out.println("我是一只小鸟");
System.out.println(this.name + "正在吃" + food);
}
}

在这个代码中, 如果在子类的 eat 方法中直接调用 eat (不加super), 那么此时就认为是调用子类自己的 eat (也就是递
归了). 而加上 super 关键字, 才是调用父类的方法
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值