Java基础常用关键字

 一,常用关键字

1)super  ,   this  关键字

 我们可以在子类的方法或构造器中。通过使用"super . 属性“或"super • 方法"的方式,显式的调用
父类中声明的属性或方法。但是,通常情况下,我们习惯省略"super.
 特殊情況:当子类和父类中定义了同名的属性时,我们要想在子类中调用父类中声明的属性,则必须使用super.的方式
使用"super •属性”的方式,表明调用的是父类中声明的属性。
特殊情况:当子类重写了父类中的方法以后,我们想在子类的方法中调用父类中被重写的方法时,则必须显式的使用"super •方法“的方式,表明调用的是父类中被重写的方法。

super调用构造器
我们可以在子类的构造器中显式的使用"super(形参列表)"的方式,调用父类中声明的指定的构造器"super(形参列表)“的使用,必须声明在子类构造器的首行!
我们在类的构造器中,针对于"this(形参列表)“或"super(形参列表)“只能二选一,不能同时出现
在构造器的首行,没有明确的声明"this(形参列表)“或"super(形参列表)“,则默认调用的是父类中空参的构造:
在类的多个构造器中,至少有一个类的构造器中使用了"super(形参列表)",调用父类中的构造器

this是在当前类使用表明当前属性或方法

2)final  最终的

>final 可以用来修饰变量(包括类属性、对象属性、局部变量和形参)、方法(包括类方法和对象方法)和类。

>使用 final 关键字声明类,就是把类定义定义为最终类,不能被继承,或者用于修饰方法,该方法不能被子类重写

修饰类

final class 类名 {//类体}


 修饰方法

修饰符(public/private/default/protected) final 返回值类型 方法名(){//方法体}

final修饰变量就称为一个常量

3)static  静态的

static可以用来修饰:属性、方法、代码块、内部类

3.1 , 使用static修饰属性:静态变量(或类变量)

private static String name;

 属性,按是否使用static修饰,又分为:静态属性 vS 非静态属性(实例变量)
实例变量:我们创建了类的多个对象,每个对家都独立的拥有一套类中的非静态属性。当修改其中一个对象中的非静态属性时,不会导致其他对家中同样的属性值的修改。
静态变量:我们创建了类的多个对象,多个对象共享同一个静态变量。当通过某一个对象修改静态变量时,会导致其他对家调用此静态变量时,是修改过了的。

 静态变量随着类的加载而加载。可以通过“类•静态变量"的方式进行调用

 3.2  ,使用static修饰方法:静态方法

public static String show(){
        return name  +"\t" + "性别是:" + sex;
    }

 随着类的加载而加载,可以通过"类.静态方法"的方式进行调用

 静态方法中,只能调用静态的方法或属性
非静态方法中,既可以调用非静态的方法或属性,也可以调用静态的方法或属性

 在静态的方法内,不能使用this关键字super关键字

static  final 用来修饰属性就是一个全局常量  要大写 

 private static final String name = "张三";

4) extends继承

Penguin类继承Animal类 

在 Java 中,类的继承是单一继承,也就是说,一个子类只能拥有一个父类,所以 extends 只能继承一个类。 

public class Animal { 
    private String name;   
    private int id; 
    public Animal(String myName, int myid) { 
        //初始化属性值
    } 
    public void eat() {  //吃东西方法的具体实现  } 
    public void sleep() { //睡觉方法的具体实现  } 
} 
 
public class Penguin  extends  Animal{ 
}

5) implements  实现

 使用 implements 关键字可以变相的使java具有多继承的特性,使用范围为类继承接口的情况,可以同时继承多个接口(接口跟接口之间采用逗号分隔)。

public interface A {
    public void eat();
    public void sleep();
}
 
public interface B {
    public void show();
}
 
public class C implements A,B {
}

6) abstract  抽象的

修饰类 , 修饰方法称为抽象类 , 抽象方法

 具体用法参考抽象笔记

7)interface   接口

public interface NameOfInterface
{
   //任何类型 final, static 字段
   //抽象方法
}

 8)instanceof    运算符用于多态向下转型

 public static void show(Animal a)  {
      a.eat();  
        // 类型判断
        if (a instanceof Cat)  {  // 猫做的事情 
            Cat c = (Cat)a;  
            c.work();  
        } else if (a instanceof Dog) { // 狗做的事情 
            Dog c = (Dog)a;  
            c.work();  
        }  
    }  

二,重写 tostring  ,  equals 方法 

 9)重写tostring  方法

9.1 ,当我们输出一个对象的引用是,实际上就是调用当前对象的tostring方法我们自定义的类可以重写tostring方法返回对象的实体内容。否则会输出地址。

快捷键:Alt + Insert 

 @Override
    public String toString() {
        return "Study{" +
                "name='" + name + '\'' +
                ", sex='" + sex + '\'' +
                '}';
    }

 10)重写equals 方法

>只适用于引用数据类型

Object类中定义的equals方法作用跟 "==" 的作用是相同的都是比较两个对象的地址值是否相同,如果要判断两个对象的实体内容是否相同则要重写  equals 方法

快捷键:Alt + Insert 

 @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        Study study = (Study) o;
        return Objects.equals(name, study.name) && Objects.equals(sex, study.sex);
    }

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值