关键字

1.this关键字

  >>this可以用在所有非静态的方法中

  a)   是一个引用,指向调用当前方法的对象。可以用在任何的非static方法体内部

  b)   是非static方法能直接调用非static方法的关键

  c)   this通常都可以省略,但是如果是有歧义,那么此时不可省略

2.static关键字

★ static修饰三类成员:静态的

    ▪成员变量 : 该成员变量是属于类的 , 所有的成员变量都会有默认初始值 ;

                     非static的成员变量进行默认初始化是在创建对象时,static的成员变量的默认初始化实在加载类时 ;

                     特点:static成员变量不会随着对象的创建而重新初始化,会随着程序的重新加载而重新初始化 .

    ▪方法:得调用才执行 .

    ▪代码块: 在类加载时期完成变量或代码块的初始化 ;

一旦用static修饰,表示所修饰的内容是属于类的。
因为是属于类的,所以通过类来调用,体现在代码上为:通过类名来调用


❶.修饰方法:

1.  通过类名直接调用

a)   一个类中static可以直接调用static的原因是省略的类名

b)   static资源可以通过对象来访问,但是不推荐,推荐使用类名来访问

2.  static方法中不能使用this关键字,super关键字

a)   调用一个非static的方法,除了传递常规的参数外,其实还会隐式的传递调用当前方法的引用的对象过去。

3.  static方法不能调用非static方法原因

a)   static方法体中没有this关键字

❷.修饰代码块:

属于类的代码块,在类加载期间执行的代码块,只执行一次,可以用来在程序中加载静态资源。

static{
    代码块
}

       案例说明

   静态资源:加载图片,音乐等

              内容确定之后不变,要供程序中的多个对象使用的资源

3.final关键字

    修饰变量:

              ▪可以修饰成员变量,也可以修饰局部变量

              ▪如果修饰成员变量,在声明的同时必须初始化,如果修饰局部变量,可以先声明,后初始化。

              ▪变量的值一旦确定,不可以被修改

   ❷ 修饰方法:作用:表示方法是不可变的。

              ▪体现在:方法不可以被重写

   ❸修饰类:作用:表示此类时不可变的

              ▪体现在:类不可以被继承

final 不论修饰以上三种的那一种,它的作用都是最终的 , 不可改变的 意思。

4.static final 常量

注意点: ①static final常量会在编译期被替换.         

public class Test {
	public static final int A = 22;
	public static void main(String[] args) {
		/**类名点常量名时,编译期已经替换成了具体赋的值 22*/
		System.out.println(Test.A); //22
	}
}

            ②常量名必须用大写字母.

5.abstract关键字

    ❶ 抽象方法

          ▪只有方法的声明,没有方法体,连大括号也买有 , 就叫做抽象方法.

          ▪如果一个类中有抽象方法,那么这个类也一定是抽象类.

   ❷抽象类 :基于父类的

         ▪ 意义:为其子类提供一个公共的模板;

           抽象类是用于被继承的

   ▶二者关系:

     一个类中如果有抽象方法,那么这个类一定是抽象类 ; 如果一个类是抽象类,这个类中不一定有抽象方法的。

   ❸抽象类的用法:

      一个类继承抽象类,如果抽象类中有抽象方法,那么此类要么全部重写父类中的抽象方法,要么此类也成为抽象类。

  ★ 注意点:

       1.  抽象类中有构造方法,但是抽象类不可以实例化 (new 此类对象)

       2.  abstract和final不可以同时修饰一个类

6.interface 接口

  6.1 接口是一种数据类型(引用类型)

  6.2 接口是由 interface 来定义

  6.3 接口内只能包含 常量 抽象方法

       ▪ 凡是数据都是常量: 默认public static final 在修饰

       ▪凡是方法都是抽象的: 默认 public abstract 修饰

public interface interface1 {
	int AGE = 18; // 有默认的 public static final
	String getName(); // 有默认的 public abstract
}

  6.4 接口不能被实例化(接口是不完整的) , 但可以申明引用

  6.5 接口是需要被实现的 , 实现类必须重写接口中的所有抽象方法 , 且重写方法必须用 public 修饰

  6.6 一个类可以实现多个接口 , 用逗号隔开 public void test implements interface1,interface2{ }

  6.6 接口可以继承接口  public interface1 extends interface2{ }

        > 特点 : 多实现  

        ★注意点: 

                  ▪接口中没有构造器(构造方法) , 不可以被实例化 

                  ▪若又继承又实现接口 , 先继承 后实现

                  ▪接口与接口------多继承

                  ▪类和类-----------单继承

                  ▪类和接口--------多实现

     

抽象类和接口的比较:

    1.抽象类中有构造器,而接口中没有,但是两者都不能实例化

    2.抽象类中可以有变量,可以有常量,而接口中只能有常量

    3.抽象类中可以有抽象方法,也可以有普通方法,而接口中只能有抽象方法

    4.抽象类和接口都可以用于继承,但是抽象类的继承是单继承,接口的继承是多继承

            

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值