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


问答区域    
2024-01-02 大佬们有谁能讲解下类类型的方法吗,和普通的有啥区别
小白职业搬砖JAVA

如题




1 个答案

巧夺天工
答案时间:2024-02-19
1.Java的基本数据类型共有8种,分别为byte、short、int、long、float、double、char和boolean。除了这8类基本数据类型,可以说其他全是类类型; 2.类类型的数据都是一个类(class),就是可以点进去看源码的



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




2023-12-17 结果,请各位评判
xu1748047159




你超神了 加血前:465.0 Hero{name='亚索', HP=765, PP=0} 结果
package LOL;

public class Hero  {
    String name;//姓名
    int HP;//血量
    int PP;//蓝量


    public Hero(String name, int HP, int PP) {
        this.name = name;
        this.HP = HP;
        this.PP = PP;

    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getHP() {
        return HP;
    }

    public void setHP(int HP) {
        this.HP = HP;
    }

    public int getPP() {
        return PP;
    }

    public void setPP(int PP) {
        this.PP = PP;
    }
    @Override
    public String toString() {
        return "Hero{" +
                "name='" + name + '\'' +
                ", HP=" + HP +
                ", PP=" + PP +
                '}';
    }
    public void legendary(){
        System.out.println("你超神了");
    }
    public float getHp(){

        return HP;
    }
    public void upHp(int blood){
        HP +=blood;
    }
}

public class Yaso {
    public static void main(String[] args) {
        Hero ys = new Hero("亚索", 465, 0);
        ys.legendary();
        float hp = ys.getHp();
        System.out.println("加血前:"+hp);
        ys.upHp(300);
        System.out.println(ys.toString());
    }
}


							


1 个答案

consix
答案时间:2024-03-26



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





2023-08-14 看看有问题吗
2023-04-28 这个对不对
2023-01-11 课堂练习+笔记


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

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

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

上传截图