类及其成员可以用的修饰符:
1.类:
1.访问修饰符只有两种:(默认),public ;2.final,abstract。使用public居多;
2.类中成员变量:
1.访问修饰符:四个访问修饰符都可以使用;2.final--拥有最终的值,不能被修改;static--静态变量。使用private居多(封装);
3.构造方法:
1.访问修饰符:四个访问修饰符都可以; 使用public 居多
4.成员方法:
1.访问修饰符:四个都可以;2.final--最终的方法,不能被重写;
static--静态的方法; abstract--抽象的方法;
接口:
接口概述:
1.当一个类中,包含都是抽象方法时,可以将此类声明为"接口"。2.使用关键字:interface.
3.接口同抽象类一样不能被实例化;4.一个类实现接口使用关键字:implements
接口中可以包含哪些东西呢?
1.成员变量:
1).接口中的成员变量必须声明为"常量",必须是公有的.public static final
2).接口中的成员变量可以不使用关键字public final。如果不使用,系统会自动添加
2.构造方法:
接口中没有构造方法;
3.成员方法:
1).接口中只能包含抽象方法;
2).接口中的抽象方法被隐式的声明为:public abstract。如果不加关键字,系统会自动添加
多态:
1.继承的多态: 父类类型 变量名 = new 子类类型();
2.抽象类的多态: 抽象类父类类型 变量名 = new 子类类型();
3.接口的多态: 接口的类型 变量名 = new 子类类型();
最长用的是:接口多态;
接口的继承:
1.一个接口可以同时"继承"自一个或多个接口,使用继承:extends
类:一个类可以继承自一个类或者继承自一个抽象类(单继承),并且可以同时实现多个接口;
抽象类:一个抽象类可以继承自一个抽象类(单继承),并且可以实现多个接口;
接口:一个接口可以继承自一个,或多个接口(多继承);
子类可以覆盖父类final的成员变量
接口的作用:
1.接口就是用来被实现的;
2.一个类可以同时实现多个接口;语法:class 类名 implements IA,IB
3.一个类可以同时继承自一个类或抽象类,并且同时实现多个接口;
一定要先继承,后实现;
语法:class 类名 extends 父类 implements 接口1,接口2
4.接口的作用:
1).Java中的继承只能单继承,不能同时继承自多个类,此时如果想扩充方法,
可以同过接口实现;
数组的静态和动态声明方法
一维:
int[] a = new int[3];
int[] a = new int[] {1,2,3};
二维:
int[][] arr = new int[3][2];
int[][] arr = new int[][]{{1,2},{4,3},{9,8}};
int[][] arr = new int[3][];
arr[0] = new int[2];
int[][] arr = new int[3][];
arr[0] = new int[]{1,2};
arr[1] = new int[]{4,3};
arr[2] = new int[]{9,8};
构造方法的重载:
1.什么是重载:具有相同的方法名,具有不同的形参列表;
2.构造方法是可以重载的:也就意味着,一个类中,可以有多个构造方法;
3.一个类中有多个构造方法,意味着什么?意味着有多种方式,构造一个此类对象;
4.如果一个类中只提供了一个构造方法,而且带参数,那么只能通过这个构造方法去构造对象;
方法重写时的注意事项:
1.父类中私有的方法不能被重写;
2.子类重写父类的方法时,访问修饰符一定跟父类的访问修饰符相同或比父类更宽;
private(私有) , 默认(不指定),protected(受保护的),public(公有的)
3.父类静态方法,子类也必须通过静态方法进行重写。
4.方法名、参数、返回值必须相同。
5.被定义为final的方法不能被重写
多态:父类对象指向子类对象。
构造函数的作用?
成员变量、成员方法的定义。
static的应用:static可以修饰成员变量、成员方法:
应用一:修饰成员变量:
有些变量需要整个工程使用,这时可以将这个变量放在一个类中,并且声明为static的;
应用二:修饰成员方法:
可以将整个工程内需要经常使用的一些"功能性的方法"封装到一个类中,并且定义为static的,供整个工程使用。使用者,可以直接通过类名直接调用,不需要先实例化那个类的对象,使用方便。
成员变量和局部变量的区别:
一.在类中的位置不同
1.成员变量:定义在"类体中"的变量;成员变量可以是任何Java类型;
2.局部变量:定义在某个方法体内,或者一些语句块内;例如:if语句,for语句内
二.在内存中的位置不同
1.成员变量:存储在"堆空间"中;
2.局部变量(基本数据类型):存储在"栈"中,只有当方法被执行,或者语句被执行时,会产生空间;当作用域结束,变量立即消失;
三.生命周期不同
1.成员变量 随着对象的存在而存在,随着对象的消失而消失;(静态成员变量的声明周期?)
2.局部变量 随着方法的调用而存在,随着方法的调用完毕而消失;
四.初始化值不同
1.成员变量 有默认的初始化值:
整数:0
浮点:0.0
字符:'\u0000'
布尔:false
String 及其他引用类型:null;
2.局部变量 没有默认的初始化值,必须先定义,赋值,才能使用。
|
|