⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 java03_05.htm

📁 JAVA的课件
💻 HTM
字号:
<html>

<head>
<meta http-equiv="Content-Language" content="zh-cn">
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<title>Java程序设计</title>
</head>

<body background="Bg.gif">

<p align="center"><font size="5"><b>§3.5 方法的定义和实现</b></font></p> 
 
<p align="left"> 类中的方法类似与C中的函数,但它一般属于某个类,用于实现可以加到某个对象上的操作。</p>

<p align="left">一、方法声明</p>
<p align="left">&nbsp; [方法修饰符] [方法返回值类型] 方法名 ([形式参数表])</p> 
<p align="left">其中,方法修饰符和成员变量的修饰符一样,有private,protected,public,缺省。它们的含义也完全相同。注意:这些修饰符是给外部类调用时才有区别,对于类中其他的方法而言,它们仿佛是不存在。<br> 
另外,方法修饰符也可以是final和static,分别表示最终方法(这个用于继承中)和静态方法。</p> 
<p align="left">方法的返回值类型也和成员变量的数据类型一致,有基本类型:int,char,double等,也可以是类名。<br> 
另外,返回值类型可以是void,表示没有返回值。</p> 
<p align="left">形式参数表和C的函数的参数表一样,也是<b>传值调用。</b></p> 
<p align="left">例 方法的声明<br> 
class Myclass{<br> 
&nbsp; int k;<br> 
&nbsp; protected int mul(int n)<br> 
&nbsp; { return n*2; //注意:返回值必须和方法前面声明的一致。<br> 
&nbsp; }<br> 
&nbsp; public void call()<br> 
&nbsp; {&nbsp; k=mul(3);<br> 
&nbsp; }<br> 
}</p> 
<p align="left">二、方法体的实现<br> 
实际上,除了抽象方法外,方法在声明的同时就必须实现,如上例。<br> 
写一般的方法体和前面写main()方法并没有太大的区别,只是要注意形式参数和局部变量的问题。</p> 
<p align="left">1、局部变量<br> 
class Myclass{<br> 
&nbsp; int k;<br> 
&nbsp; int fun1()<br> 
&nbsp; { int n=2;&nbsp;&nbsp;&nbsp; //n是局部变量<br> 
&nbsp;&nbsp;&nbsp; return n*k; //k是成员变量,都可用&nbsp;<br> 
&nbsp; } //一旦fun1执行完毕,n就不存在了<br> 
<br> 
&nbsp; int fun2()<br> 
&nbsp; {&nbsp; k=5;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //正确,k可用<br> 
&nbsp;&nbsp;&nbsp;&nbsp; return n+k;&nbsp; //错误,n是fun1的局部变量,不可用<br> 
&nbsp; }<br> 
&nbsp; int fun3()<br> 
&nbsp; { int n=3;&nbsp;&nbsp;&nbsp; //这个n和fun1中的n互不相干<br> 
&nbsp;&nbsp;&nbsp; return n;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br> 
&nbsp; }<br> 
}</p> 
<p align="left">2、形式参数<br> 
形式参数从本质上说是一种局部变量,而且在JAVA中,它是传值调用的。<br> 
class Myclass{<br> 
&nbsp; void&nbsp; fun1(int n)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //n是形式参数<br> 
&nbsp; {&nbsp;&nbsp; n=n*2;<br> 
&nbsp;&nbsp; } //一旦fun1执行完毕,n就不存在了<br> 
&nbsp; int fun2(int n)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //这个n和fun1中的n互不相干<br> 
&nbsp;  
{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br> 
&nbsp;&nbsp;&nbsp;&nbsp; return n*2;<br> 
&nbsp; }<br> 
&nbsp; void call()<br> 
&nbsp; { int k=3;<br> 
&nbsp;&nbsp;&nbsp; fun1(k);&nbsp;&nbsp;&nbsp;&nbsp; //k作为实参,将值传给形参n<br> 
&nbsp;&nbsp;&nbsp; System.out.println(k);&nbsp;&nbsp;&nbsp;&nbsp; //这个k是多少?<br> 
&nbsp;&nbsp;&nbsp; k=fun2(k);<br> 
&nbsp;&nbsp;&nbsp; System.out.println(k);&nbsp;&nbsp;&nbsp;&nbsp; //这个k是多少?<br> 
&nbsp; }<br> 
}</p> 
<p align="left">3、重名问题<br> 
同一方法内的形式参数不允许和局部变量同名,但它们都可以和成员变量同名。<br> 
例:<br> 
class Myclass{<br> 
&nbsp; int k=2;<br> 
&nbsp; void fun1(int n)<br> 
&nbsp; { int n;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //这是错误的,n不能既是局部变量又是形式参数<br> 
&nbsp;&nbsp;&nbsp; int k=3;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //这是正确的<br> 
&nbsp;&nbsp;&nbsp; System.out.println(k);&nbsp;&nbsp; //这输出的是几呢?&nbsp;&nbsp;<br> 
&nbsp; }<br> 
}<br> 
<br> 
4、this<br> 
this是Java中的关键字,可以作为变量的前缀和方法的前缀。它用于指示当前对象的成员变量或方法。<br> 
例,调用成员变量:<br> 
class Myclass{<br> 
&nbsp; int k=2;<br> 
&nbsp; void fun1(int n)<br> 
&nbsp; { int k=3;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //这是正确的<br> 
&nbsp;&nbsp;&nbsp; System.out.println(k);&nbsp;&nbsp; //这输出的是局部变量<br> 
&nbsp;&nbsp;&nbsp; System.out.println(this.k);&nbsp;&nbsp; //这输出的是成员变量&nbsp;&nbsp;<br> 
&nbsp; }<br> 
}<br> 
例,调用方法<br> 
class Myclass{<br> 
&nbsp; int k=2;<br> 
&nbsp; void fun1(int n)<br> 
&nbsp; { int k=3;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //这是正确的<br> 
&nbsp;&nbsp;&nbsp; System.out.println(k);&nbsp;&nbsp; //这输出的是局部变量<br> 
&nbsp;&nbsp;&nbsp; System.out.println(this.k);&nbsp;&nbsp; //这输出的是成员变量&nbsp;&nbsp;<br> 
&nbsp; }<br> 
&nbsp; void fun2()<br> 
&nbsp; { this.fun1(3);&nbsp;&nbsp; //它和下面这条语句等价:<br> 
&nbsp;&nbsp;&nbsp; fun1(3);<br> 
&nbsp; }<br> 
}<br> 
this作为方法的前缀时,主要用于调用类的构造方法。<br> 
注意:this不能出现在static方法中,这是因为static方法被调用时,不一定存在类的实例(对象),而this表示的就是“本”实例。</p> 
<p align="left"><a href="index.htm">回目录</a>  <a href="java03_04.htm">上一课</a>  
 <a href="java03_06.htm">下一课</a></p>

</body>

</html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -