首页 > 代码库 > java-修饰符-包-内部类

java-修饰符-包-内部类


1.访问权限修饰符

从大到小的顺序为:public--protected--default--private

private--只能在同一类中使用;

default--不用写出来,默认不加.可以被同一包中的类使用

protected--可以被不同包的子类使用

public--可以被不同包的其它类使用


2.各种修饰符的修饰对象(可修饰哪些:类/接口/方法/属性)

1)访问权限修饰符:public/default---可修饰类/接口

  private protected 不可修饰类.default可修饰类,但是不用写出来;

2)静态修饰符:static --修饰属性/方法/只能修饰内部类/代码块;

 不能与static共存的修饰符:abstract(有三个?待查)

3)final--修饰类/属性/方法/方法中的参数(修饰后可被局部内部类访问);

4)abstract--修饰类/方法;


3.关于修饰符的默认情况:

接口默认为 public;

接口中的变量默认为 public static final(即常量,命名时需全部大写);

接口中的方法默认为 public abstract;

类中方法的权限修饰符若不写,则默认为default:举例如下:

interface IA{

void show();//编译后:public abstract void show();

}

class A implements IA{

void show(){//重写错误:这里使用的默认的访问修饰符,比父类的访问修饰符小了,这是不允许的。

System.out.println("Hello");

}

}

main(){

new A().show();

}




==========================================================================================


3.包

java中的包,其实就是电脑中的文件夹,包中存放的是.class文件,当class文件很多的时候,采用多个包进行存放,称之为分包管理.

1).使用的类与当前类在一个包中,无需导包;

2).使用的类在java.lang中无需导包;

3).其它情况必须导包;

4).java常用系统包:

java.lang--基本包,自动导入,String等都在此包中;

java.lang.reflect--反射机制的包,java.lang的子包;

java.util--工具包,常用类库/日期操作等

java.text--文本的处理类库

java.sql--数据库操作包,提供各类数据库操作的类和接口

java.net--网络编程相关

java.io--输入/输出处理

java.awt--构成抽象窗口工具集的多个类,这些类用来构建和管理GUI

javax.swing--建立图形用户界面


5).目前为止用到的包总结:

java.lang--String System StringBuffer StringBuilder 包装类 Thread

java.util--Scanner Random ArrayList Arrays Date objects

java.io--BufferdReader BufferedWriter FileReader FileWriter

java.math--BigDecimal BigInteger

========================================================================================================================


4.内部类--成员内部类-局部内部类-匿名内部类

1)内部类也称为嵌套类(官方说法),是写在类中的类.分为成员内部类(写在成员变量位置)和局部内部类(写在方法里,很少用).匿名内部类是局部内部类的一种.

2)内部类中可以直接访问外部类中的所有成员

3)关于对局部变量/内部类成员变量/外部类成员变量的访问

public class Outer {

int a = 100;

class Inner{

int a = 200;

public void printA(){

int a = 300;

System.out.println("局部变量a="+a);//300

System.out.println("内部类的变量a="+this.a);//200

System.out.println("外部类的变量a="+Outer.this.a);//100

}

}

}

4)匿名内部类是创建某个类型子类对象的快捷方式,因此匿名内部类的前提是有父类或接口.


java-修饰符-包-内部类