黑马程序员——方法.构造方法,抽象方法

来源:互联网 发布:男生发型软件 编辑:程序博客网 时间:2024/06/16 01:40

方法.构造方法,抽象方法

方法:

1)        重要性之方法的特点和分类:

方法是java语言中一个很重要的实现功能的代码块,它是java语言中类,接口,变量等其他代码块之间沟通的连接和实现的一个重要角色。

 

格式:

修饰符 返回值类型 方法名(参数类型 参数名1,参数类型 参数名2...) {

                            方法体语句;

                            return返回值;

                   }

修饰符:public,static,abstract,protected,默认修饰符,private,final等都可以修饰,根据使用情况而定。

返回值类型:就是方法返回的的数据类型

方法名:就是起了一个名字,方便我们调用该方法,起名字注意见名知意。

参数类型:就是参数的数据类型

参数名:就是变量

参数分类:

                   实参:实际参与运算的数据

                   形参:方法上定义的,用于接收实际参数的值,可以是引用数据类

型和对象

方法体语句:就是完成功能的代码块

return:结束方法

返回值:就是功能的结果,由return带给调用者。有明确返回值必须有return

 

特点:

A、 不调用不执行;

B、 方法和方法间是平级关系,不能嵌套;

C、 方法定义的时候,参数是用,隔开的,也可以没有参数,可以有修饰词也可以没有

D、如果方法没有明确的返回值类型,就必须有return语句返回;

E、 方法可以重载和重写。

 

方法分类:(这是根据学习的知识自己总结的,不是官方分类)

A、 普通方法:有参数有方法体

B、  构造方法:

格式:

1.        方法名和类名一样,

2.        没有返回值,

3.        也没有返回值类型

特点:

1、 有参数的叫有参构造,没参数的叫无参构造

2、 系统一般会给出无参构造,如果我们给出了构造方法,系统就不在给出

3、 构造方法在new的时候运行一次,之后就不再运行,除非又new一次,构造方法不能直接调用,不能用

Static,final修饰,一般用public或默认修饰

C、抽象方法:

抽象方法:用abstract修饰,没有语句体,一般存在于抽象类或者接口中。

 

2)          方法的调用,重载,重写:

认识了方法的特点和分类,那么我们该怎么使用呢?

 

方法的调用:      

A、有明确返回值的方法的调用

赋值调用,推荐用赋值调用;

输出调用;

B、void类型修饰的方法

只能用单独调用

C、构造方法调用

一般只能子类调用父类的构造方法系统默认

super();一般可以不写

D、 抽象方法的调用

抽象方法没有语句体,不能直接调用,需要子类继承或者实现类重写方法,然后才能被调用,而且调用的是重写后的方法

              容易出现误区的是方法的重载和重写,这里做一个案例帮助理解

             

构造方法:(是一个特殊的方法)

   作用:给对象数据进行初始化

/*

 * 方法的重载和重写

 */

//定义一个接口,在里面写一个Speak的抽象方法

interface SpeakE {

       publicabstract void speake();

}

//定义一个抽象类,在里面写一个抽象方法show

abstract class Student{

       abstractvoid show();

}

//类Jack继承抽象学生类并实现了SpeakE接口

class BanZhang extends Student implementsSpeakE{

       //定义三个变量,重载sum方法

       inta,b,c;

       publicint sum(int a,int b){

              returna+b;

       }

       publicint sum(int a,int b,int c){

              returna+b+c;

       }

       //重写speake和show方法

       publicvoid speake(){

              System.out.println("说英语");

       }

       publicvoid show(){

              System.out.println("jack是个好学生");

       }

}

//定义main方法

class ChongXChongZ{

       publicstatic void main(String[] args) {

              //new一个班长对象,继承了父类Student,并实现了接口

              BanZhangbz=new BanZhang();

        //这是两个方法重写,重写了父类的方法show()

bz.speake()

              bz.show();

              bz.speake(); 

              //这是两个方法重载

              System.out.println(bz.sum(1,2));

              System.out.println(bz.sum(1,2,3));

       }

}

从案例中我们可以看出以下几点:

方法重写:   子类中出现了和父类中一模一样的方法(方法名, 返回

值类型 , 参数列表)

                     方法重载:    在同一个类中,允许同时存在一个以上的同名方法只要

它们的参数列表不同, 实际上和返回值类型也没有关系

这就是方法的重写和重载。对方法还陌生的小伙伴们可以看下,相信会有帮助的,

有不同的见解和补充的内容也欢迎小伙伴们一起来更正和补充。

      

 

0 0
原创粉丝点击