辛集市网站建设_网站建设公司_Ruby_seo优化
2025/12/28 1:17:13 网站建设 项目流程

面向对象高级

代码块

packagecom.itheima.code;importjava.util.Arrays;publicclassCodeDemo1{publicstaticStringschoolName;publicstaticString[]cards=newString[54];//静态代码块:有static修饰,属于类,与类一起优先加载,自动执行一次//基本作用:可以完成对类的静态资源的初始化static{System.out.println("静态代码块执行了");//先执行schoolName="黑马程序员";cards[0]="A";cards[1]="2";cards[2]="3";}publicstaticvoidmain(String[]args){//目标:认识代码块,搞清楚代码块的基本作用System.out.println("main方法执行了");//后执行System.out.println(Arrays.toString(cards));//返回数组的内容观察(不然返回的是数组的地址)}}//-----------------分界线-----------------packagecom.itheima.code;publicclassCodeDemo2{publicstaticStringname;publicstaticString[]direction=newString[4];//实例代码块:无static修饰,属于对象,每次创建对象时,都会优先执行一次//基本作用:初始化对象的实例资源{System.out.println("实例代码块执行了");direction[0]="N";direction[1]="S";direction[2]="E";direction[3]="W";}publicstaticvoidmain(String[]args){//目标:实例代码块System.out.println("main方法执行了");newCodeDemo2();//实例代码块执行一次newCodeDemo2();//实例代码块执行一次newCodeDemo2();//实例代码块执行一次}}

内部类

ps:用的不多,主要是为了看懂别人写的代码
前三种搞清楚语法,重点是匿名内部类

成员内部类


packagecom.itheima.innerclass;publicclassInnerClassDemo1{publicstaticvoidmain(String[]args){//目标:搞清楚成员内部类的语法//成员内部类创建对象的格式//外部类名称.内部类名称 对象名 = new 外部类名称().new 内部类名称();Outer.Inneroi=newOuter().newInner();oi.show();//成员内部类访问外部类成员的特点(拓展)://1.成员内部类中可以直接访问外部类的静态成员,静态方法,也可以直接访问外部类的实例成员 ////2.成员内部类的实例方法中,可以直接拿到当前寄生的外部类对象:外部类名.this}}//例题classPeople{privateintheartBeat=100;privateclassHeaer{privateintheartBeat=80;publicvoidshow(){intheartBeat=200;System.out.println(heartBeat);//200System.out.println(this.heartBeat);//80System.out.println(People.this.heartBeat);//100}}}//=================分界线=================packagecom.itheima.innerclass;//外部类publicclassOuter{publicstaticStringschoolName="黑马程序员";publicstaticvoidtest(){System.out.println("test()");}privateintage;publicvoidrun(){}//成员内部类:无static修饰,属于外部类的对象持有的publicclassInner{publicStringname;//构造器publicInner(){System.out.println("Inner() name ="+name);}//有参构造器publicInner(Stringname){this.name=name;System.out.println("Inner(String name) name ="+name);}publicvoidshow(){System.out.println("show()");//成员内部类中可以直接访问外部类的实例成员System.out.println(schoolName);test();//也可以直接访问外部类的实例成员System.out.println(age);run();}publicStringgetName(){returnname;}publicvoidsetName(Stringname){this.name=name;}}}

静态内部类


packagecom.itheima.innerclass2;publicclassTest{publicstaticvoidmain(String[]args){//目标:搞清楚静态内部类的语法//创建对象的格式:外部类名.内部类名 静态内部类对象名 = new 外部类名.静态内部类名();Outer.Innerinner=newOuter.Inner();inner.show();//1.静态内部类中是否可以直接访问外部类的静态成员?可以//2.静态内部类中是否可以直接访问外部类的实例成员?不可以}}//=================分界线=================packagecom.itheima.innerclass2;//外部类publicclassOuter{publicstaticStringschooolName;privateintage;//外部类的实例成员属于外部类的对象,必须用外部类的对象才可以访问//静态内部类:属于外部类本身持有publicstaticclassInner{privateStringname;publicvoidshow(){//1.静态内部类中是否可以直接访问外部类的静态成员?可以System.out.println(schooolName);//2.静态内部类中是否可以直接访问外部类的实例成员?不可以(外部类的实例成员属于外部类的对象,必须用外部类的对象才可以访问)//System.out.println(age);//报错}publicvoidsetname(Stringname){this.name=name;}publicStringgetname(){returnname;}}}

局部内部类

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询