1.二维数组
int[][]a={{1,2,3},{2,3,4},{3,4,5}}
遍历方法:
for(int i=0;i<arr.length;i++){ for(int j=0;j<arr[i].length;j++){ System.out.println(arr[i][j]); } }
2.类的继承extends
继承是面向对象的三大特征之一(封装,继承,多态)即子类可以使用父类的非私有变量和方法 优点:提高代码复用性,代码可维护性 缺点:继承具有一定的绑定关系(耦合) 特点:java只支持单继承不支持多继承 A不能同时继承B和C 格式:class B extends A{},B为子A为父
public static void main(String[] args) { C x=new C(); x.method();//c继承了b,b继承了a所以c可以输出a和b的变量 } } class A{ int a=10; } class B extends A{ int b=20; } class C extends B{ public void method(){ System.out.println(a); System.out.println(b); } }
3.继承重点
//构造方法不能被继承
构造方法:
在父子类中,子类的构造方法首行默认有一个super(); 即调用父类的无参构造!
public static void main(String[] args) { /*查找变量遵循就近原则,先找局部变量,再找成员变量,再找父类的变量 若三种变量都存在且强行输出成员变量可用this 若强行输出父类变量可用super */ E e=new E(); e.method(); } } class D{ int num=10; } class E extends D{ int num=20; public void method(){ int num=30; System.out.println(super.num);//10 System.out.println(this.num);//20 System.out.println(num);//30 } }
4.static
static:java的一种修饰符,表示静态,可修饰成员方法/变量,又叫静态方法/变量
调用静态资源:类名.变量/类名.方法名
public static void main(String[] args) { m x=new m(); m y=new m(); System.out.println(++x.x);//11,此时x被static修饰表示它变成公共的了, System.out.println(++y.x);//12,//y.x为调用静态资源 } } class m{ static int x=10; }
//静态资源属于类,随着类的加载而加载。加载时机早于对象!!! //静态资源无法访问非静态资源;非静态资源可以访问静态资源! class xin{ int a=10; public static void f(){ System.out.println(a);//报错,静态无法访问非静态 } }
5.方法重写
在父子类中,方法名和参数列表完全相同的方法叫方法重写输出时优先输出子方法 注意事项:父类私有的方法不能被重写,父类私有变量也不能被继承,父类静态方法(static)不能被重写 能被继承 校验:使用@override,java自带不用写
//两同两小一大,两同为方法名参数列表相同 //方法重写时子类的访问修饰符权限必须大于等于父类 class a11{ void xxc(){//void前没写东西就是排名第三的默认 } } class a12 extends a11{ public void xxc() {//public排名第一比上面的默认大 } } //public>protected>int(默认)>private //子类的返回值类型小于等于父类 //子类抛出的异常要小于父类抛出的异常