how2j.cn


工具版本兼容问题
包: package

把比较接近的类,规划在同一个包下


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



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



步骤 1 : 把比较接近的类,规划在同一个包下   
步骤 2 : 使用其他包下的类,必须import   
步骤 3 : 练习-包   
步骤 4 : 答案-包   

步骤 1 :

把比较接近的类,规划在同一个包下

edit
Hero,ADHero 规划在一个包,叫做charactor(角色)
Item,Weapon规划在另一个包下,叫做 property(道具)
在最开始的地方声明该类所处于的包名
把比较接近的类,规划在同一个包下
package charactor; //在最开始的地方声明该类所处于的包名 public class Hero { String name; //姓名 float hp; //血量 float armor; //护甲 int moveSpeed; //移动速度 }
package charactor; //在最开始的地方声明该类所处于的包名
public class Hero {
       
    String name; //姓名
       
    float hp; //血量
       
    float armor; //护甲
       
    int moveSpeed; //移动速度
    
}
步骤 2 :

使用其他包下的类,必须import

edit
使用同一个包下的其他类,直接使用即可
但是要使用其他包下的类,必须import
package charactor; //Weapon类在其他包里,使用必须进行import import property.Weapon; public class Hero { String name; //姓名 float hp; //血量 float armor; //护甲 int moveSpeed; //移动速度 //装备一把武器 public void equip(Weapon w){ } }
创建一个新的包charactor1,并且让练习-治疗类:Support 声明在这个包下
在查看答案前,尽量先自己完成,碰到问题再来查看答案,收获会更多
在查看答案前,尽量先自己完成,碰到问题再来查看答案,收获会更多
在查看答案前,尽量先自己完成,碰到问题再来查看答案,收获会更多
查看本答案会花费1个积分,您目前总共有点积分。查看相同答案不会花费额外积分。 积分增加办法 或者一次性购买JAVA 基础总计0个答案 (总共需要0积分)
查看本答案会花费1个积分,您目前总共有点积分。查看相同答案不会花费额外积分。 积分增加办法 或者一次性购买JAVA 基础总计0个答案 (总共需要0积分)
账号未激活 账号未激活,功能受限。 请点击激活
本视频是解读性视频,所以希望您已经看过了本答案的内容,带着疑问来观看,这样收获才多。 不建议一开始就观看视频

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


package charactor1; import charactor.Hero; public class Support extends Hero { public void heal() { System.out.println("对自己进行治疗"); } public void heal(Hero hero) { System.out.println("给英雄 " + hero + " 加血"); } public void heal(Hero hero, int hp) { System.out.println("给英雄 " + hero + " 加了 " + hp + "点血"); } }
package charactor1;
import charactor.Hero;

public class Support extends Hero {

	public void heal() {
		System.out.println("对自己进行治疗");
	}

	public void heal(Hero hero) {
		System.out.println("给英雄 " + hero + " 加血");
	}

	public void heal(Hero hero, int hp) {
		System.out.println("给英雄 " + hero + " 加了 " + hp + "点血");
	}
}


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


问答区域    
2022-09-21 关于步骤2的问题
戏誌不才




谁能告诉我在步骤2在英雄类构造了一个装备其它包下装备类的方法,在hero中实例化怎么用,代码在这,想半天了
package charactor;
//Weapon类在其他包里,使用必须进行import
import property.Weapon;
public class Hero {
    
    String name; //姓名
     
    float hp; //血量
     
    float armor; //护甲
     
    int moveSpeed; //移动速度
    //坑队友
    void keng(){
        System.out.println("坑队友!");
    }
    public void equip(Weapon w){
        System.out.println(this.name+"装备了"+w);
    }
    //获取护甲值
    float getArmor(){
        return armor;
    }
     
    //增加移动速度
    void addSpeed(int speed){
        //在原来的基础上增加移动速度
        moveSpeed = moveSpeed + speed;
    }
     
    public static void main(String[] args) {
        Hero garen =  new Hero();
        garen.name = "盖伦";
        garen.hp = 616.28f;
        garen.armor = 27.536f;
        garen.moveSpeed = 350;
         garen.equip(w);
        
        Hero teemo =  new Hero();
        teemo.name = "提莫";
        teemo.hp = 383f;
        teemo.armor = 14f;
        teemo.moveSpeed = 330;
    }  
     
}

							


1 个答案

wangbiui
答案时间:2022-10-18
Weapon heiqie = new Weapon()



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





2022-01-12 Hero类中的name属性要用public或者protected作用域修饰,要不然会报错,访问不到
zoe22111




Hero类中的name属性要用public或者protected作用域修饰,要不然会报错,访问不到
	public String name;
	float hp;
	float armor;
	int speed;
	

							


6 个答案

zhenghaha
答案时间:2023-04-20
import com.example.project.类和对象.Support; public class Hero { String name; //姓名 float hp; //血量 float armor; //护甲 int moveSpeed; //移动速度 //治疗 public void equip(Support w){ }

莫諾
答案时间:2023-03-21
111

阿文6
答案时间:2022-10-20
芬达味橘猫
答案时间:2022-04-29
Hero的属性需要定义为public

hoolich
答案时间:2022-03-08
package charactor1; import charactor.Hero; /*设计一个类Support (辅助英雄)继承Hero,提供一个heal(治疗)方法 对Support的heal方法进行重载 heal() heal(Hero h) //为指定的英雄加血 heal(Hero h, int hp) //为指定的英雄加了hp的血*/ public class Support extends Hero { public void heal() { System.out.println("对自己进行治疗"); } public void heal(Hero h) { System.out.println("给英雄 " + h + " 加血"); } public void heal(Hero h, int hp) { System.out.println("给英雄 " + h + " 加了 " + hp + "点血"); } public static void main(String[] args) { } }

小沫沫
答案时间:2022-01-18
可以给name属性添加public的get和set方法专门进行读写,详见代码。 使用方式为: 1. 获取name属性:System.out.println(hero.getName()); 2. 修改name属性:hero.setName(name); 在eclipse里使用快捷键“alt+shift+s”,再选择"Generate Getters and Setters..."选项,即可快速创建get和set方法。 idea里快捷键为: "alt+ins"。



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





2021-07-08 2021-7-8-PM-4-30
2021-04-09 为啥我在Support里创建了个naima类输出结果是地址
2020-11-18 为什么我不能package多重目录的包


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

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

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

上传截图