鱼C论坛

 找回密码
 立即注册
查看: 1684|回复: 8

[系列教程] 【Java 教程(原创)】017.类(中)

[复制链接]
最佳答案
60 
发表于 2017-1-24 12:23:07 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
本帖最后由 零度非安全 于 2017-1-25 18:51 编辑

点击图片穿越到 索引帖,听说有惊喜!

☟



在上一讲中非安全哥哥给你们简单介绍了 Java 类中的对象

接下来给大家讲下类的方法

☠

方法

我们再来回顾下一个类的类体的组成部分,你还记得吗?

即变量的声明和方法的定义

若不清楚的鱼油请返回上一讲再看看

☠

那我们先来看下方法大概是长什么样子的,其实全是一个“屌丝样”。
  1. 方法声明部分{
  2.     方法体中的内容
  3. }
复制代码

没错,这就是方法的定义,它跟类一样也是包括了两个部分,一个是方法声明,另一个是方法体。

那好,我就为大家分别讲下这两个部分。
----------- 华丽的 new.gif 分割线 -----------

☠

方法声明

❁

最基本的方法声明包括方法名和方法的返回类型,例如下面这位哥们长这样。
  1. float area(){
  2.     .
  3.     .
  4.     .
  5. }
复制代码

方法返回的数据类型可以是任意的 Java 数据类型,当一个方法不需要返回数据时,返回类型必须是 void。

很多方法声明中都给出了方法的参数,参数是用逗号隔开的一些变量声明。方法的参数可以是任意的 Java 数据类型。

方法的名字必须符合标识符的规定,给方法起名字的习惯和给变量起名字的习惯类似,在这里就不重复啰嗦了,举个栗子。
  1. float getTrangleArea()
  2. void setCircleRadius(double radius)
复制代码

下面的 Triangle 类中有 5 个方法。
  1. class Triangle{
  2.     double sideA,sideB,sideC;
  3.     void setSide(double a,double b,double c){
  4.         sideA = a;
  5.         sideB = b;
  6.         sideC = c;
  7.     }
  8.     double getSideA(){
  9.         return sideA;
  10.     }
  11.     double getSideB(){
  12.         return sideB;
  13.     }
  14.     double getSideC(){
  15.         return sideC;
  16.     }
  17.     boolean isOrNotTrangle(){
  18.         if(sideA + sideB > sideC && sideA + sideC > sideB && sideB + sideC > sideA){
  19.             return true;
  20.         }
  21.         else{
  22.             return false;
  23.         }
  24.     }
  25. }
复制代码

0.gif

方法体

方法声明之后的一对大括号“ { ”,“ } ”以及之间的内容称为方法的方法体。方法体内容包括局部变量的声明和 Java 语句,例如:
  1. int getSum(int n){
  2.     int sum = 0;                    //声明局部变量
  3.     for(int i = 1;i <= n;i++){      //for循环语句
  4.         sum = sum + i;
  5.     }
  6.     return sum;                     //return语句
  7. }
复制代码


方法参数和方法内声明的变量称为局部变量,和类的成员变量不同的是,局部变量和声明的位置有关。

写一个方法和在 C 语言中写一个函数完全类似,只不过在面向对象语言中称为方法,因此如果鱼油有比较好的 C 语言基

础,编写方法的方法体已不在是难点。


重载


Java 中存在两种多态,即重载(Overload)和重写(Override),重写是和继承有关的多态,这个会在以后讲到。

方法重载是多态性的一种,例如,一位鱼油跑过来问非安全哥哥:“哥哥,帮我写一个求面积的方法 ”,那我可能会

问你求什么面积呀?

1.png

功能多态性
:是指可以向功能传递不同的消息,以便让对象根据相应的消息来产生相应的行为。对象的功能通过类

中的方法来体现,那么功能的多态性就是方法的重载。



方法重载的意思是,一个类中可以有多个方法具有相同的名字,但这些方法的参数必须不同,即或者是参数的个数不同,

或者是参数的类型不同。在下面的 Area 类中,getArea 方法是一个重载方法。
  1. class Area{
  2.     float getArea(float r){
  3.         return 3.14f * r * r;
  4.     }
  5.     double getArea(float x,int y){
  6.         return x * y;
  7.     }
  8.     float getArea(int x,float y){
  9.         return x * y;
  10.     }
  11.     double getArea(float x,float y,float z){
  12.         return (x * x + y * y + z * z) * 2.0;
  13.     }
  14. }
复制代码


【特别注意】贴子中的栗子希望鱼油们能自觉的手动敲上去,不要单纯的复制粘贴保存,然后编译运行。


&#10049;

&#9758;点我前往上一讲&#9756;

&#9758;点我前往下一讲&#9756;

&#10049;

评分

参与人数 1荣誉 +5 鱼币 +5 收起 理由
alltolove + 5 + 5 感谢楼主无私奉献!

查看全部评分

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
最佳答案
0 
发表于 2017-1-24 21:51:39 | 显示全部楼层
虽然看不懂 但是为了金币 拼了

评分

参与人数 1鱼币 +3 收起 理由
零度非安全 + 3

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
最佳答案
60 
 楼主| 发表于 2017-1-24 22:07:16 | 显示全部楼层
851364759 发表于 2017-1-24 21:51
虽然看不懂 但是为了金币 拼了

下次不能再这样了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
最佳答案
0 
发表于 2017-2-23 23:13:40 | 显示全部楼层
重载和重写总是分不清,重载相同功能的多态性,理解了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
最佳答案
0 
发表于 2017-2-24 15:44:44 | 显示全部楼层
基础学过一些,看看举得例子,回顾回顾
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
最佳答案
60 
 楼主| 发表于 2017-2-24 21:01:10 | 显示全部楼层
pyt1 发表于 2017-2-23 23:13
重载和重写总是分不清,重载相同功能的多态性,理解了

nice哟!!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
最佳答案
60 
 楼主| 发表于 2017-2-24 21:01:36 | 显示全部楼层
鱼尾 发表于 2017-2-24 15:44
基础学过一些,看看举得例子,回顾回顾

我喜欢爱学习的好孩纸!!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
最佳答案
0 
发表于 2017-3-20 16:57:12 | 显示全部楼层
继续学习
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
最佳答案
0 
发表于 2018-5-15 11:33:41 | 显示全部楼层
851364759 发表于 2017-1-24 21:51
虽然看不懂 但是为了金币 拼了

可以可以
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

小甲鱼强烈推荐上一条 /1 下一条

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号

GMT+8, 2018-12-11 16:15

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表