how2j.cn


工具版本兼容问题
在LOL中,一个英雄可以做很多事情,比如超神,超鬼,坑队友

能做什么在类里面就叫做方法


本视频是解读性视频,所以希望您已经看过了本知识点的内容,并且编写了相应的代码之后,带着疑问来观看,这样收获才多。 不建议一开始就观看视频



5分30秒
本视频采用html5方式播放,如无法正常播放,请将浏览器升级至最新版本,推荐火狐,chrome,360浏览器。 如果装有迅雷,播放视频呈现直接下载状态,请调整 迅雷系统设置-基本设置-启动-监视全部浏览器 (去掉这个选项)。 chrome 的 视频下载插件会影响播放,如 IDM 等,请关闭或者切换其他浏览器



示例 1 : 什么是方法   
示例 2 : 方法返回类型   
示例 3 : 方法的参数   
示例 4 : 方法的命名   
示例 5 : 练习-方法   
示例 6 : 答案-方法   

比如队友残血正在逃跑,你过去把路给别人挡住了,导致他被杀掉。 这就是坑队友
每个英雄。。。。都可以
所以为Hero这个类,设计一个方法: keng
什么是方法
public class Hero { String name; //姓名 float hp; //血量 float armor; //护甲 int moveSpeed; //移动速度 //坑队友 void keng(){ System.out.println("坑队友!"); } }
public class Hero {
    String name; //姓名
     
    float hp; //血量
     
    float armor; //护甲
     
    int moveSpeed; //移动速度

    //坑队友
    void keng(){
    	System.out.println("坑队友!");
    } 
}
示例 2 :

方法返回类型

edit
有的方法是有返回类型的
比如方法:

float getArmor(){
return armor;
}


这个方法是用来获取一个英雄有多少护甲的,返回类型是float
有的方法不需要返回值,这个时候就把返回类型设置为void,表示该方法不返回任何值
比如方法 "坑队友"

void keng(){
System.out.println("坑队友!");
}
public class Hero { String name; //姓名 float hp; //血量 float armor; //护甲 int moveSpeed; //移动速度 //获取护甲值 float getArmor(){ return armor; } //坑队友 void keng(){ System.out.println("坑队友!"); } }
public class Hero {
    String name; //姓名
     
    float hp; //血量
     
    float armor; //护甲
     
    int moveSpeed; //移动速度

    //获取护甲值
    float getArmor(){
    	return armor;
    }

    //坑队友
    void keng(){
    	System.out.println("坑队友!");
    }

}
英雄在一些特定情况下,可以增加移动速度
这样我们就通过addSpeed这个方法增加移动速度

void addSpeed(int speed){
//在原来的基础上增加移动速度
moveSpeed = moveSpeed + speed;
}


int speed 叫做方法的参数
给盖伦增加100的移动速度:

Hero garen = new Hero();
garen.name = "盖伦";
garen.moveSpeed = 350;
garen.addSpeed(100);
public class Hero { String name; //姓名 float hp; //血量 float armor; //护甲 int moveSpeed; //移动速度 //坑队友 void keng(){ System.out.println("坑队友!"); } //获取护甲值 float getArmor(){ return armor; } //增加移动速度 void addSpeed(int speed){ //在原来的基础上增加移动速度 moveSpeed = moveSpeed + speed; } public static void main(String[] args) { Hero garen = new Hero(); garen.name = "盖伦"; garen.moveSpeed = 350; garen.addSpeed(100); } }
方法是一个类的动作行为,所以一般都是以动词开头的,比如 keng ...
如果有多个单词,后面的每个单词的第一个字母使用大写
比如 addSpeed
public class Hero { String name; //姓名 float hp; //血量 float armor; //护甲 int moveSpeed; //移动速度 //坑队友 void keng(){ System.out.println("坑队友!"); } //获取护甲值 float getArmor(){ return armor; } //增加移动速度 void addSpeed(int speed){ //在原来的基础上增加移动速度 moveSpeed = moveSpeed + speed; } }
示例 5 :

练习-方法

edit  姿势不对,事倍功半! 点击查看做练习的正确姿势
为英雄类Hero设计几个新的方法:
1. 超神 legendary(),无参数,无返回类型
2. 获取当前的血量 getHp(), 无参数,有float类型的返回值
3. 回血 recovery(float blood), 有参数 float类型参数 blood表示本次恢复的血量,无返回类型
在查看答案前,尽量先自己完成,碰到问题再来查看答案,收获会更多
在查看答案前,尽量先自己完成,碰到问题再来查看答案,收获会更多
在查看答案前,尽量先自己完成,碰到问题再来查看答案,收获会更多
查看本答案会花费3个积分,您目前总共有点积分。查看相同答案不会花费额外积分。 积分增加办法 或者一次性购买JAVA 基础总计0个答案 (总共需要0积分)
查看本答案会花费3个积分,您目前总共有点积分。查看相同答案不会花费额外积分。 积分增加办法 或者一次性购买JAVA 基础总计0个答案 (总共需要0积分)
账号未激活 账号未激活,功能受限。 请点击激活
本视频是解读性视频,所以希望您已经看过了本答案的内容,带着疑问来观看,这样收获才多。 不建议一开始就观看视频

2分15秒 本视频采用html5方式播放,如无法正常播放,请将浏览器升级至最新版本,推荐火狐,chrome,360浏览器。 如果装有迅雷,播放视频呈现直接下载状态,请调整 迅雷系统设置-基本设置-启动-监视全部浏览器 (去掉这个选项)。 chrome 的 视频下载插件会影响播放,如 IDM 等,请关闭或者切换其他浏览器


答案-方法
public class Hero { String name; //姓名 float hp; //血量 float armor; //护甲 int moveSpeed; //移动速度 //坑队友 void keng(){ System.out.println("坑队友!"); } //获取护甲值 float getArmor(){ return armor; } //增加移动速度 void addSpeed(int speed){ //在原来的基础上增加移动速度 moveSpeed = moveSpeed + speed; } //超神 void legendary(){ System.out.println("超神了!"); } //获取当前的血量 float getHp(){ return hp; } //回血 void recovery(float blood){ hp = hp+blood; } public static void main(String[] args) { Hero garen = new Hero(); garen.name= "盖伦"; garen.hp = 500; System.out.println(garen.name + " 当前的血量是 " +garen.hp); System.out.println("回血100"); garen.recovery(100); System.out.println("现在的血量是:" + garen.hp); } }


HOW2J公众号,关注后实时获知最新的教程和优惠活动,谢谢。


问答区域    
2022-04-22 moveSpeed=moveSpeed+speed;
努力学习的两口锅




这个speed是怎么给它的值呢?
void addSpeed(int speed)
	{//在原来的基础上增加了移动速度
		moveSpeed=moveSpeed+speed;
	}

							


3 个答案

AZX6669
答案时间:2022-07-30
package lei; public class Hero { String name; float hp; float armor; int movespeed; int k; int d; int a; void keng() { System.out.println("坑队友"); } float getArmor() { return armor; } void addspeed(int speed) { movespeed=movespeed+speed; } void legendary(){ System.out.println("超神"); } float getHp() { return hp; } //3. 回血 recovery(float blood), 有参数 float类型参数 blood表示本次恢复的血量,无返回类型 void recovery(float blood) { blood=blood+blood; } public static void main(String [] args) { Hero garen=new Hero(); garen.name="盖伦"; garen.hp=311.4f; garen.armor=444.2f; garen.movespeed=444; garen.addspeed(100); garen.k=1; garen.d=19; garen.a=0; Hero teemo=new Hero(); teemo.name="提莫"; teemo.hp=220f; teemo.armor=440f; teemo.movespeed=500; teemo.k=19; teemo.d=1; teemo.a=0; } }

Lussby
答案时间:2022-05-02
就是说你在调用这个方法的时候要在括号里传入一个值,这个方法通过运算后才能给你返回增加后的移动速度值,上面大哥说的形参就是你要传入的参数。

西封图南
答案时间:2022-04-23
void addSpeed(int speed) //这个括号里的speed是形参,下面的speed的实际值是在调用方法的时候,通过形参传递的 {//在原来的基础上增加了移动速度 moveSpeed=moveSpeed+speed; }



回答已经提交成功,正在审核。 请于 我的回答 处查看回答记录,谢谢
答案 或者 代码至少填写一项, 如果是自己有问题,请重新提问,否则站长有可能看不到





2022-02-24 对garen.recovery(100)不理解
LW_LW

garen.recovery(100); 这个和 float recovery = 100; 有什么区别呢? garen.recovery(100)看不懂。。。




8 个答案

grapecc
答案时间:2022-08-12
就是一个是对象里的属性,另一个是调用对象所拥有的方法。比如猫毛色 和猫进行染色

张遥23
答案时间:2022-07-07
public class Hero { // 送了多少次 // 杀人次数 // 助攻次数 // 金钱 // 补刀数 // 攻击速度 // 杀人后说的话 // 被杀后说的话 String name; //姓名 float hp; //血量 float armor; //护甲 int moveSpeed; //移动速度 int deathTime; //死亡次数 int killTime; //杀人次数 int assistsTime;//助攻次数 int money;// 金钱 int buDao;// 补刀数 int gongSu;// 攻击速度 String shaRenYuYin;// 杀人后说的话 String beiShaYuYin;// 被杀后说的话 void keng(){ System.out.println("坑队友");//没有返回值的方法把返回类型设置成Void,表示该方法不返回任何值 } public float getArmor() { //该方法是需要有返回值的,设置好返回值得类型 return armor; } public String getName() { return name; } public void addMobeSpeed(int speed){ moveSpeed=moveSpeed+speed; //在原来的基础上增加移动速度 } void legendary(){ // 超神 } public float getHp() { return hp; // 获取当前的血量 } void recovery(float blood){ hp=hp+blood; //回血 } public static void main(String[] args) { Hero Gailun = new Hero(); Gailun.name = "盖伦"; Gailun.hp = 3000; Gailun.armor = 300; Gailun.moveSpeed= 575; Gailun.shaRenYuYin = "勇往直前"; Gailun.beiShaYuYin = "人在塔在"; Gailun.recovery(500); System.out.println(Gailun.hp); } }

w011daidan
答案时间:2022-05-11
芬达味橘猫
答案时间:2022-04-24
public class Hero3 { String name; float hp; float armor; int moveSpeed; void legendary(){ System.out.println("超神"); } //定义getHp float getHp(){ float ghp = hp; System.out.println(ghp); return ghp; } //形参+HP void recovery(float blood){ float rhp = blood + hp; System.out.println(rhp); } public static void main(String args[]){ Hero3 tomas = new Hero3(); tomas.name = "tomas"; tomas.hp=300f; tomas.legendary(); //获取HP tomas.getHp(); //增加HP tomas.recovery(50.555f); } }

fdafd
答案时间:2022-04-12
package pack; public class sds { public static void main(String[] args) { Item item1=new Item("牛逼",100,80,60); item1.legendary(); } } class Item{ String name; float hp; float armor; int moveSpeed; public Item(String name,float hp,float armor,int moveSpeed){ this.name=name; this.hp=hp; this.armor=armor; this.moveSpeed=moveSpeed; } public void legendary(){ System.out.println("超神"); } public float getHp(){ return this.hp; } public void recovery(float blood){ hp=hp+blood; } }

曾经沧海
答案时间:2022-03-23
void addLegenday() { System.out.println("超神"); } float getHp() { return hp; } void recovery(float blood) { hp=hp+blood; }

1weN
答案时间:2022-03-18
兄弟建议你从头开始耐心看看,你完全是懵的,这个garen,recovery(100)是实例对象调用回血这个方法,而 float recovery = 100则是给回血这个float类型的变量赋初始值为100。。。

小盈不快乐
答案时间:2022-02-28
garen.recovery(100)是调用了叫做recovery的方法



回答已经提交成功,正在审核。 请于 我的回答 处查看回答记录,谢谢
答案 或者 代码至少填写一项, 如果是自己有问题,请重新提问,否则站长有可能看不到




2022-01-13 方法返回类型怎么理解,
2022-01-06 问题
2021-12-27 第三个回血的返回值,hp是float类型,blood也是float类型,为什么返回值不是float呢,而是void


提问太多,页面渲染太慢,为了加快渲染速度,本页最多只显示几条提问。还有 90 条以前的提问,请 点击查看

提问之前请登陆
提问已经提交成功,正在审核。 请于 我的提问 处查看提问记录,谢谢
关于 JAVA 基础-面向对象-方法 的提问

尽量提供截图代码异常信息,有助于分析和解决问题。 也可进本站QQ群交流: 578362961
提问尽量提供完整的代码,环境描述,越是有利于问题的重现,您的问题越能更快得到解答。
对教程中代码有疑问,请提供是哪个步骤,哪一行有疑问,这样便于快速定位问题,提高问题得到解答的速度
在已经存在的几千个提问里,有相当大的比例,是因为使用了和站长不同版本的开发环境导致的,比如 jdk, eclpise, idea, mysql,tomcat 等等软件的版本不一致。
请使用和站长一样的版本,可以节约自己大量的学习时间。 站长把教学中用的软件版本整理了,都统一放在了这里, 方便大家下载: https://how2j.cn/k/helloworld/helloworld-version/1718.html

上传截图