Java笔记

super

  引用父类成员变量、局部变量、方法

  例如:super.变量名,super.方法名,super.父类的构造方法;

  super() 表示调用父类的构造函数

this

  引用该类成员变量、局部变量、方法

  例如:this.变量名,this.方法名,this.父类的构造方法;

final与static:

  final:

    修饰 成员变量:表示常量,只能被赋值一次(可以先声明而不给初值,这种变量也称为final空白,但使用前必须被初始化)

    修饰 成员方法:不能被子类override,但可以被继承使用(final不能修饰构造方法;private修饰的方法默认也是final的)

    修饰 类:不能被继承,该类没有子类(final类的成员方法默认为final的)

  static:

    修饰 成员变量:独立于该类的任何对象,被类的所有对象/实例共享,通过类名访问(static对象可以在其任何对象创建前访问;生成实例时不产生static变量的副本)

    修饰 成员方法:独立于该类的任何对象,被类的所有对象/实例共享,通过类名访问(static对象可以在其任何对象创建前访问;生成实例时不产生static变量的副本)

    修饰 类:只能修饰内部类,不能修饰外部类。修饰内部类时可以直接作为一个普通类使用,详见参考链接。

    注:static修饰的成员方法只能调用static修饰的(静态的)类、成员变量(需要先实例化)、成员方法

  static和final一起使用:

    可以理解为全局常量,通过类名访问

    注意:被static和final修饰的实例常量,实例本身不能改变,但对于一些容器类型的实例变量(如ArrayList、Hashmap)的实例变量,不能改变容器变量本身,但可以改变容器中存放的对象。

abstract:

  修饰 成员方法:表抽象方法,在该类中不能具体实现,在子类(非抽象)中必须具体实现

  修饰 类:表抽象类,抽象类不能实例化,只能被继承

  抽象类:至少包含一个抽象方法,成员变量可以是普通变量

interface(接口):

  成员变量:只能有static final的成员变量,不用static final修饰,也会隐式地声明为static final。

  成员方法:不用abstract修饰,接口中的成员方法都默认是抽象方法

内部类:

  内部类:定义在一个类里或一个方法里的类。

  一般来说包括这四种:成员内部类、局部内部类、匿名内部类和静态内部类。

  成员内部类可以无条件访问外部类的所有成员属性和成员方法(包括private成员和静态成员)

  同名成员的访问:

    默认情况下访问的是成员内部类的成员

    访问外部类的同名成员:外部类.this.成员变量(方法)

  外部类中如果要访问成员内部类的成员,必须先创建一个成员内部类的对象,再通过指向这个对象的引用来访问

  创建内部类对象:

    Outter outter = new Outter();  //必须通过Outter对象来创建

    Outter.Inner inner = outter.new Inner();  或  Outter.Inner inner = outter.getInnerInstance();

   外部类只能被public和包访问(默认)2种权限修饰,内部类有private访问权限、protected访问权限、public访问权限、包访问权限(默认)4种

(内部类详解未完待续。。。)

 线程相关:

  Thread

  Runnable

 enum 枚举:

  例子:

public class EnumDemo {
    public static void main(String[] args){
        //直接引用
        Day day =Day.MONDAY;
    }
}

//定义枚举类型
enum Day {
    MONDAY, TUESDAY, WEDNESDAY,
    THURSDAY, FRIDAY, SATURDAY, SUNDAY
}

  其中Day的类型都是 java.lang.Enum 类的子类(java.lang.Enum 是一个抽象类)

Map (相当于python里的字典):

import java.util.*;

public class CollectionsDemo {

   public static void main(String[] args) {
      Map m1 = new HashMap(); 
      m1.put("Zara", "8");
      m1.put("Mahnaz", "31");
      m1.put("Ayan", "12");
      m1.put("Daisy", "14");
      System.out.println();
      System.out.println(" Map Elements");
      System.out.print("\t" + m1);
   }
}

  需要 import java.util.Map 和 import java.util.HashMap

 

参考:

  • 继承:https://blog.csdn.net/weixin_39938767/article/details/80056922
  • final和static,讲得很详细:https://blog.csdn.net/hust_yfang/article/details/79585696
  • static修饰类:https://www.cnblogs.com/a8457013/p/8078826.html
  • 内部类:https://www.cnblogs.com/dolphin0520/p/3811445.html
  • enum:https://blog.csdn.net/javazejian/article/details/71333103
  • Map:http://www.runoob.com/java/java-map-interface.html

 

posted @ 2019-01-02 23:16  sbj123456789  阅读(187)  评论(0编辑  收藏  举报