理解Java方法的调用(声明、返回值、参数、调用、继承、子构造器、理解方法的调用、多态)

声明:

 [修饰符1 修饰符2...]返回值类型 方法名(形式参数列表)
  {
    程序代码;
    [return 返回值];
   }

 

有无返回值

有void修饰,无返回值

int------------------>return  int  类型的值

string-------------->return String类型的值

数据类型-------->return 当前数据类型值

返回类、集合、流等

方法的返回值类型必须和return之后的值数据类型一样

 

方法的参数列表可以是有参数的,也可以是没有参数的。
使用方法的好处:提高代码的复用性
有参方法是指()中包含一个或多个变量的定义,也称为参数列表
无参方法是指()中不含参数

参数有两种:
形式参数(形参):在方法定义时用于接收外界输入的数据。定义方法时所携带的参数
实际参数(实参):调用方法时实际传给方法的数据

形参和实参的区别:

1形参只有在被调用的时候,才分配内存单元,在调用结束时立即释放内存单元,形参只在当前方法内部有效

2实参可以是常量、变量、表达式、方法 等。但是在进行方法调用前,必须要有确定的值。

3形参和实参在顺序、类型、长度、必须一致。

4实参到形参是单向的,

方法的调用:
1.直接调用:方法名(实参列表);   //调用的前提是该方法存在于当前类中
2.类名调用:类名.方法名(实参列表);  //调用的前提是该方法属于静态方法(也就是用static修饰的方法)
3.对象调用:对象.方法名(实参列表);


定义子类:(关键字extends继承)

public class Mananger extends Employee

{

    方法和域...

}

此时,Employee是一个超类(父类),子类Mananger继承了他的父类。子类可以使用父类的公有信息,不能访问私有信息,不过我们可以通过调用父类的公有方法获得私有数据。

子构造器:super

super有俩个用途:一是调用超类的方法

                              二是调用超类的构造器(构造函数)

如果子类没有显示的调用超类的构造器,则将自动的调用超类默认(没有参数)的构造器。

 

理解方法的调用:

编辑器查看对象的申明类型和方法名。假设x.f(param),且隐式参数x声明为C类的对象。需要注意的是:有可能存在多个名字为f,但参数不一样的方法。例如,可能存在方法f(int)和方法f(String)。编译器将会一一列举所有C类中名为f的方法和其超类中访问类型为public且名为f的方法(超类的私有方法不能访问)。

接下来,编译器将查看调用方法时所提供的参数类型。如果在所以名为f的方法中存在一个与提供的参数类型完全匹配,就选择这个方法。这个过程被称为重载解析。例如,对于调用x.f("Hello")来说,编译器将会挑选f(String),而不是f(int)。如果编译器没有找到与参数类型匹配的方法,或者多个方法与之匹配,就会报一个错误。

举个栗子:

先建立一个java项目,把这些类放在一个包里面

 

这是一个父类,有私有属性age;

这是一个子类,继承了people类,也有一个age私有属性;

这是一个子类,继承了people类,有一个School类;

一个测试的类(Test)

结果:

 

 

1、图中第一个19就是new一个Student对象,然后设置值,再输出出来,好的没有什么问题(Test类中5,6,7行代码)。

2、之后的20  其实是调用的People类(父类)的方法,因为Student没有age可以设置,所以就往它的父类设置了

3、最后的“老师今年80了”和40 ,调用的也是父类的age,不过是用Teacher类的getAge()方法输出的,不是People类的。


多态

指的是对象变量是多态的。一个类的变量既可以引用它自己的对象,也可以引用它里面的任何一个子类对象。

栗子之后在补,没找到好的栗子(2019.08.18:22:00);


未完待续....

 

 

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值