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-05-02 交作业
勇者无畏强者无敌



交作业
package LOLHero;

public class Hero {
    String name;
    float hp;
    float aemor;
    int moveSpeed;

    public static void main(String[] args) {
        Hero garen = new Hero();
        garen.name = "盖伦";
        garen.hp = 616f;
        garen.aemor = 27f;
        garen.moveSpeed = 350;
        garen.addSpeed(50);

        Hero teemo = new Hero();
        teemo.name = "提莫";
        teemo.hp = 383f;
        teemo.aemor = 14f;
        teemo.moveSpeed = 330;

    }
    public void keng() {
        System.out.println("坑队友!");
    }
    public float getAemor() {
        return aemor;
    }
    public void addSpeed( int speed ) {
        moveSpeed += speed;
    }
    public void legendary() {
        System.out.println("超神!");
    }
    public float getHp() {
        return hp;
    }
    public void recovery(float blood) {
        hp += blood;
    }

}

							


3 个答案

ID:404 答案时间:2018-05-21
杨小喵的乖狗 答案时间:2018-05-06
Midi 答案时间:2018-05-04




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





2018-04-23 代码
Nurbo



代码练习。
package test;
/**
 * 英雄类
 * @author POP
 *
 */
public class Hero {
	//属性
	String name;	//姓名
	int grade;	//等级
	float blood;	//血量
	
	//暴走
	public void rampage(){
		System.out.println("Rampage!!!");
	}
	
	//获取当前血量
	public float getBlood(){
		return blood;
	}
	
	//回血
	public void recovery(float blood){
		this.blood = this.blood + blood;
	}
}
package test;

public class CreateHero {
	public static void main(String[] args) {
		Hero sf = new Hero();
		sf.blood = 600.666f;
		sf.grade = 1;
		sf.name = "影魔";
		
		System.out.println("影魔当前的血量为:" + sf.getBlood());
		System.out.println("影魔正在吃锅:");
		sf.recovery(100.0f);
		System.out.println("影魔现在的血量为:" + sf.blood);
		
		System.out.println("影魔暴走了:");
		sf.rampage();
	}
}

							






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





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群交流: 620943819
站长会在每个工作日早上尽量回答提问(如果有漏掉没有回答的,请进群提醒一下)
提问尽量提供完整的代码,环境描述,越是有利于问题的重现,您的问题越能更快得到解答。
对教程中代码有疑问,请提供是哪个步骤,哪一行有疑问,这样便于快速定位问题,提高问题得到解答的速度
站长是玻璃心,提问的时候请语气温柔些 kiss~
截止2017-5-19日累计提问 1638个,站长回答了 1546个
截止2017-8-15日累计提问 2788个,站长回答了 2544个

上传截图