how2j.cn


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

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

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



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



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

示例 1 :

什么是方法

比如队友残血正在逃跑,你过去把路给别人挡住了,导致他被杀掉。 这就是坑队友
每个英雄。。。。都可以
所以为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 :

方法返回类型

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

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("坑队友!");
    }

}
示例 3 :

方法的参数

英雄在一些特定情况下,可以增加移动速度
这样我们就通过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); } }
示例 4 :

方法的命名

方法是一个类的动作行为,所以一般都是以动词开头的,比如 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 :

练习-方法

Or  姿势不对,事倍功半! 点击查看做练习的正确姿势
为英雄类Hero设计几个新的方法:
1. 超神 legendary(),无参数,无返回类型
2. 获取当前的血量 getHp(), 无参数,有float类型的返回值
3. 回血 recovery(float blood), 有参数 float类型参数 blood表示本次恢复的血量,无返回类型
示例 6 :

答案-方法

在查看答案前,尽量先自己完成,碰到问题再来查看答案,收获会更多
本视频是解读性视频,所以希望您已经看过了本答案的内容,带着疑问来观看,这样收获才多。 不建议一开始就观看视频

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


答案-方法
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公众号,关注后实时获知布最新的教程和优惠活动,谢谢。


问答区域    
2018-11-08 交作业
社社社会人



增加速度和增加护甲
package com.itheima;

public class HeroDemo {
	String name; //姓名
	float hp; //血量
	float armor; //护甲
	int moveSpeed;//移动速度
	
	
	
	//坑队友
	void keng(){
		System.out.println("坑队友");
	}
	
	//超神
	void legendry(){
		System.out.println("超神");
	}
	
	//获得血量
	float getHp(){
		return hp;
	}
	
	//获取护甲值
	float getArmor(){
		return armor;
	}
	
	//获取移动速度
	int getMoveSpeed(){
		return moveSpeed;
	}
	
	//回血
	void recovery(float blood){
		hp = hp +blood ;
	}
	
	//增加护甲
	void addArmor(float defense){
		armor= armor + defense;
	}
	
	//增加移动速度
	void addSpeed(int speed ){
		moveSpeed = moveSpeed + speed;
	}
	
	public static void main(String[] args) {
		HeroDemo garen = new HeroDemo();
		garen.name = "盖伦";
		garen.hp = 2000f;
		garen.armor = 500f;
		garen.moveSpeed = 150;
		
		System.out.println(garen.name + "盖伦当前的血量" + garen.hp);
		System.out.println("回血100");
		garen.recovery(100);
		System.out.println("盖伦现在的血量是;" + garen.hp);
		System.out.println(".............");
		
		
		System.out.println(garen.name + "盖伦当前的护甲" + garen.armor);
		System.out.println("增加护甲200");
		garen.addArmor(200);
		System.out.println("盖伦现在的护甲是;" + garen.armor);
		System.out.println(".............");
		
		System.out.println(garen.name + "盖伦当前的移动速度" + garen.moveSpeed);
		System.out.println("增加移动速度50");
		garen.addSpeed(50);
		System.out.println("盖伦现在的移动速度是:" + garen.moveSpeed);
		
		
	}
  
}

							


2 个答案

小幸运 答案时间:2018-11-18
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; } }

社社社会人 答案时间:2018-11-08
package com.itheima; public class HeroDemo { String name; //姓名 float hp; //血量 float armor; //护甲 int moveSpeed;//移动速度 //坑队友 void keng(){ System.out.println("坑队友"); } //超神 void legendry(){ System.out.println("超神"); } //获得血量 float getHp(){ return hp; } //获取护甲值 float getArmor(){ return armor; } //获取移动速度 int getMoveSpeed(){ return moveSpeed; } //回血 void recovery(float blood){ hp = hp +blood ; } //增加护甲 void addArmor(float defense){ armor= armor + defense; } //增加移动速度 void addSpeed(int speed ){ moveSpeed = moveSpeed + speed; } public static void main(String[] args) { HeroDemo garen = new HeroDemo(); garen.name = "盖伦"; garen.hp = 2000f; garen.armor = 500f; garen.moveSpeed = 150; System.out.println(garen.name + "盖伦当前的血量" + garen.hp); System.out.println("回血100"); garen.recovery(100); System.out.println("盖伦现在的血量是;" + garen.hp); System.out.println("............."); System.out.println(garen.name + "盖伦当前的护甲" + garen.armor); System.out.println("增加护甲200"); garen.addArmor(200); System.out.println("盖伦现在的护甲是;" + garen.armor); System.out.println("............."); System.out.println(garen.name + "盖伦当前的移动速度" + garen.moveSpeed); System.out.println("增加移动速度50"); garen.addSpeed(50); System.out.println("盖伦现在的移动速度是:" + garen.moveSpeed); } }




答案 或者 代码至少填写一项, 如果是自己有问题,请重新提问,否则站长有可能看不到





2018-11-07 Hero garen = new Hero();
yao123
Hero garen = new Hero(); 这个是什么意思




3 个答案

我要变J大神 答案时间:2018-11-07
public class Hero { String name; //姓名 float hp; //血量 float armor; //护甲 int moveSpeed; //移动速度 //获取血量 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 = 600; garen.recorery(150); } }

Demacai 答案时间:2018-11-07
东京食尸鬼 答案时间:2018-11-07
对象实例化 就是开始你所创建的类只是一个虚的东西,现在你给了他一个真实的有意义的具体的英雄了,实例化后就可以进行赋值了




答案 或者 代码至少填写一项, 如果是自己有问题,请重新提问,否则站长有可能看不到




2018-10-30 交作业
2018-10-29 交作业
2018-10-26 作业
2018-10-24 交作业
2018-10-23 交作业
2018-10-22 为什么要返回值
2018-10-14 交作业
2018-10-14 最后一个recovery为何是void而不是float?
2018-10-13 交下作业吧 也不清楚写的如何
2018-10-11 恢复血量没有增加
2018-10-06 交作业啦.getHp这个方法里可以直接打印出拥有的血量Hp吗?
2018-09-25 交作业
2018-09-22 交作业了
2018-09-13 第二次交作业,学习很开心
2018-09-11 交作业
2018-08-22 交作业-2
2018-08-07 jiaozuoye
2018-08-07 提交作业
2018-08-07 交作业来了
2018-08-07 交作业
2018-08-03 交作业来了
2018-08-01 提问,求指教
2018-07-26 交作业
2018-07-26 交作业
2018-07-25 float类型的变量,赋值时候也可以是整数吗?
2018-07-25 交作业
2018-07-25 方法的返回类型
2018-07-20 20180720-练习
2018-07-20 交作业啦
2018-07-19 交作业
2018-07-18 汇报作业
2018-07-18 【学习总结】
2018-07-17 作业
2018-07-16 交作业咯
2018-07-04 答案
2018-07-01 交作业
2018-06-27 交作业
2018-06-11 交作业啦~
2018-05-02 交作业
2018-04-23 代码
2018-04-12 交作业
2018-04-06 交作業
2018-03-28 给类添加方法
2018-03-09 作业-方法
2018-02-24 交作业
2018-02-24 交作业
2018-02-06 作业
2018-01-27 作业
2018-01-11 gethealth后面要加";"吗
2018-01-11 问下为什么在类中也可以有main函数?
2018-01-03 "new Hero(); " 中括号的具体含义是什么?
2018-01-01 我怎么感觉答案在"画蛇添足"?
2017-12-21 交作业
2017-12-05 大佬们能帮我看看吗?我希望我的回血方法里能自动获取我第一次创建对象所赋予的血量,,
2017-12-05 站长能不能帮我看看,我回血的方法,可不可以,能不能修改得更好
2017-11-16 站长。。。Legendary拼错了吧
2017-10-22 有返回的方法,怎样打印出来 能让自己知道是否返回了
2017-10-20 为什么写完代码之后用CMD无法查看
2017-09-14 garen.recovery一直报错。不明白原因
2017-07-09 交作业
2017-06-29 小问题 ,求指教
2017-06-07 一个类可以包含多个方法,这个类需要做某些事都体现在方法中
2017-05-24 大神们看看我这样写可以吗?
2017-03-17 答案
2017-02-22 老师,不写获取当前血量的方法运行结果也是一样的呢,不写那个方法,hp的值也会更新对吧
2017-02-22 并没有调用 获取当前血量的方法呢
2017-02-22 这么写可以吗 garen.getHp() 获取当前血量
2016-11-13 测试答案,看下最后一步对不对
2016-10-23 如何获取护甲值?
2016-07-27 为什么运行后没有结果显示出来
2016-07-03 为什么我的输出结果 第二个血量还是500,最后把老师代码复制过来,运行还是500?




提问之前请登陆
关于 JAVA 基础-面向对象-方法 的提问

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

上传截图