【Java】12.面向对象之方法(定义、调用、重载、变量作用域、命令行参数、可变参数)

①概念

方法是语句的集合,作用是执行某个功能

① 方法是解决一类问题的步骤的有序组合

② 方法包含于类或对象中

③ 方法在程序中被创建,在其他地方被引用

 

②优点

1. 使程序变得更简短而清晰

2. 有利于程序维护

3. 可以提高程序的开发效率

4. 提高了代码的重用性。         →解决重复性代码的冗余,重复在程序设计中是不好的味道(Bad Smell)

 

③定义

一般情况下,定义一个方法包含以下语法,包含一个方法头(method header)和一个方法体(method body)

方法头:

修饰符:告诉编译器如何调用该方法,定义了该方法的访问类型,修饰符是可选的。

返回值类型 :方法可能会返回值。returnValueType 是方法返回值的数据类型。没有返回值用关键字void

方法名:是方法的实际名称方法名和参数表共同构成方法签名

参数类型:当方法被调用时,传递值给参数。这个值被称为实参或变量。括号里的叫做参数列表,是指方法的参数类型、顺序和参数的个数,每个参数用逗号隔开。参数是可选的。

方法体:方法体包含具体语句,定义该方法的功能。

 

④调用

程序控制权:当程序调用一个方法时,程序的控制权交给了被调用的方法;当被调用方法的返回语句执行或者到达方法体闭括号时候交还控制权给程序。

调用方式:Java 支持两种调用方法的方式,根据方法是否返回值来选择。

① 当方法返回一个值的时候,方法调用通常被当做一个

② 如果方法返回值是void,方法调用一定是一条语句

传递参数:一些程序语言在调用方法传递自变量给参数时,有传值调用和传参考调用

而Java只有传值调用,在调用方法时通过值传递参数(Pass by Value)

也就是说,当把对象作参传入方法中,则对象与参数的参考会绑定在一起,改变参数的数据也会改变对象;参数建立新的对象,就会被重新引用参考。

调用一个方法的时候需要提供参数,你必须按照参数列表指定的顺序提供。

注:c++和java语言的参考是两种定义。而不是一回事。

 

⑤重载

在一个类中定义多个同名的方法,但要求每个方法具有不同的参数类型或参数个数,即拥有不同的参数列表

与修饰符和返回值类型无关

Java编译器可以根据方法签名判断哪个方法应该被调用,处理不同类型的数据

 

⑥变量作用域

变量的作用范围指的是程序中该变量可以被引用的部分。

方法内定义的变量被称为局部变量。参数也是一种局部变量。局部变量的作用范围从声明开始,直到包含它的块结束。(必须声明才可使用)

for循环的初始化时声明的变量,其作用范围在整个循环。

 

⑦命令行参数(main方法)

命令行中给定的参数就是命令行参数。(即从输入位置角度理解)

public static void main(String[] args)

一个程序开始于对函数main()的调用,有两个参数被送给main(),

其中一个是描述了命令行参数的个数,通常称为argc;另一个是命令行参数的数组,通常称为argv

命令行参数都是字符串,所以argv的类型是char* [argc+1]。该程序的名字也作为argv[0]传进来,所以argc的值至少是1。这个参数的表总以0结束,也就是说,argv[argc]==0。 

更多详见百度百科-命令行参数。

 

⑧可变参数

JDK 1.5 开始支持。

自变量/参数个数事先无法确定。在指定参数类型后面加...,这样我们可以用不同个数的自变量实现方法。

一个方法中只能指定一个可变参数,它必须是参数列的最后一个参数。任何普通的参数必须在它之前声明。

实质是编译程序蜜糖,反编译后是数组

 

⑨构造方法(见"类"一节)

 

 

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章