Java--------->类与对象
(一)重要知识点
Static用法:
1,static 作用于方法时:该方法属于类方法,无需本类的对象即可调用此方法(可以直接通过类来调用),局限性:只能调用static 方法和数据,且不能以任何方式引用this和super关键字。
2,static作用于变量:相当于全局变量,static以最后一个调用为准(可统计方法被执行的次数),static{}这类静态块优先执行,不论顺序,静态变量只会需要要初始化一次,即未其分配好了内存,而如果普通的全局变量每调用该类,都会被执行一次。
3,static作用于类时:即内部静态类,可以直接做为普通类来new 出来 详细见这里
This用法:
1,调用本类中的属性;2,调用本类中的其他方法(静态方法不能)3,返回对象的值(如:return this)
参数的传递
传递方式:值传递(实参传入给形参),而非对象传递,在传递的参数区分好是基本类型(传值)还是引用类型(形参为地址值)
传递多个同类型的参数 如test(int i ,String ...books)
Super方法:调用父类的方法,如super.成员变量,super(方法参数)
Final关键字:
1,final修饰基本类型和引用类型区别:基本类型:值不变,引用类型:引用地址不变,对象内容可以改变。
2,final修饰的方法不能被重写
3,final修饰的类不能有子类
方法的重载:方法名相同和参数列表不同,与返回类型等无关
方法的重写:两同两小一大
1,方法名相同,参数列表相同
2,方法返回类型小于或等于父类,子类抛出的异常小于等于父类
3,方法访问权限大于等于父类
变量说明:
访问权限:
包的分类:
==与equal一些易忘点:
1,对于基本类型变量,只要两个变量都是数值类型且值相等,则==成立如(3==3.0F)true;和(65=='A’)true,对于对象,要求引用类型指向同一个对象,则返回True
2,字符串常量池,如String a="23";String b="2",String c="3";String d=b+c; a==d false;a=b+"3" false;//因为在编译时无法确定(在赋值时不能直接识别类型。)
抽象类和抽象方法的特点:
1,抽象类和抽象方法必须用Abstract修饰,且抽象方法没方法体,如public abstract String test();即可无括号
2,抽象类无法被实例化(即new)
3,抽象类中可以包含成员变量,方法体(抽象方法和普通方法),构造器,初始化块,内部类(接口,枚举)
4,含有抽象方法的类只能定义为抽象类
接口:
1,抽象类中可以包含成员变量,方法体(抽象方法和默认方法(default),类方法(static)(Java8允许的)),内部类(public static修饰)
2,成员变量默认public static final ;方法默认是public abstract
3,接口支持多继承,
内部类:
1,内部类有(private,protected,static)三个权限访问,内部能访问外部变量,而外部不能直接访问内部成员(可以借用对象)。
2,非静态内部类不能含有静态变量,方法,初始块
3,静态内部类:静态类不能访问实例成员(即非静态)
4,局部内部类:声明在方法中,不能设置static和访问权限,
5,匿名类:1,不能为抽象类;2,不能定义构造方法(匿名类没有类名);
枚举类与普通类区别:
垃圾回收机制:
其中堆内存对象的三种状态转换:
Jar文件常用命令:
1,创建jar:jar cvf hello.jar hello//c:创建 f:文件信息 v:详细过程报告
2,解压jar:jar xvf hello.jar //x:解压
3,往jar中添加文件:jar uf hello.jar HelloWorld.java //u:添加
4,显示jar内容:jar tvf hello.jar