Java学习笔记(第二课--方法)

方法


Java学习笔记(第二课--方法)

Java学习笔记(第二课--方法)

1、  成员方法(实例方法):[修饰符] 返回值类型  标识符(参数列表){  、、、}

2、  静态方法:(类的方法):[修饰符] static 返回值类型  标识符(参数列表){  、、、}

3、  构造方法:[访问修饰符] 类名(){  、、、}

形参列表中的数据类型可以为:1、基本数据类型

  2、引用数据类型:对象(String、数组、集合、封装类、、、)

注意:构造方法在实例化对象的时候执行构造方法。

作用:初始化成员变量。

补充

方法重载:重载(overloading)是在一个类里面,方法名字相同,参数不同。与返回值类型、访问修饰符无关。

规则:(1)参数类型不同

     (2)参数个数不同

     (3)参数顺序不同

 

内部类

1、  成员内部类:成员内部类声明在类中,方法体、代码块之外。和成员变量、成员方法在同一级别。

实例:

package com.test02;

publicclassOut {

     //成员变量

     public inta= 1;

     //成员内部类

     public  classInner{

         public inta= 2;

         //内部类的成员方法

         public void print(){

             //执行内部类中的实例变量a

              System.out.println(a);

             //执行外部类的实例变量a

              System.out.println(Out.this.a);

         }

     }

     public staticvoidmain(String[] args){

                  //先实例化外部类

                   Outo=newOut();

                  //使用外部类对象,再实例化内部

                   Out.Innerinner=o.newInner();

                  inner.print();

 

     }

}

2、  静态内部类:声明位置参考成员内部类。在修饰符后加上static。

实例:

package com.test02;

publicclassOut {

     //成员变量

     public staticint a= 1;

     public intb= 3;

     //静态内部类

     public  staticclass Inner{

         public staticint a= 2;

         public staticvoidprint(){

             //执行静态内部类中的静态变量a

              System.out.println(a);

             //执行外部类的静态变量a

              System.out.println(Out.a);

             //执行外部类的实例变量

              Outo=newOut();

              System.out.println(o.b);

         }

     }

     public staticvoidmain(String[] args){

                  //先实例化外部类

                   Outo=newOut();

                  //使用外部类对象,再实例化内部

                   Out.Innerinner=newOut.Inner();

                  inner.print();

     }

}

3、  局部内部类:声明在方法体或代码块内,作用域范围在方法体或代码块内。

实例:

package com.test02;

publicclassOut {

     public void method(){

         //局部内部类

         classInner{

             //局部内部类的成员方法

             public void print(){

                   System.out.println("局部内部类");

              }

         }

         //实例化局部内部类

         Innerinner=newInner();

         inner.print();

     }

     public staticvoidmain(String[] args){

         Outo=newOut();

         o.method();

     }

}

 

4、  匿名内部类:声明位置同局部内部类一样,前提条件:必须继承一个类或实现一个接口,匿名内部类的声明和实例化对象是同时进行的。

一般使用于获得抽象类或接口对象。

语法:

父类名/接口名  对象名 = new 父类名/接口名(){

     //匿名内部类成员

}

实例:

package com.test02;

publicclassOut1 extends Out {

     public class Out {

         public void method(){

             //匿名内部类对象

              Outf=newOut(){

              };

         }

     }   }

抽象类不能实例化,只能通过继承,然后实例化子类,实现实例化对象。