how2j.cn


工具版本兼容问题
包: package

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

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



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



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

步骤 1 :

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

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

使用同一个包下的其他类,直接使用即可
但是要使用其他包下的类,必须import
package charactor; //Weapon类在其他包里,使用必须进行import import property.Weapon; public class Hero { String name; //姓名 float hp; //血量 float armor; //护甲 int moveSpeed; //移动速度 //装备一把武器 public void equip(Weapon w){ } }
步骤 3 :

练习-包

Or  姿势不对,事倍功半! 点击查看做练习的正确姿势
创建一个新的包charactor1,并且让练习-治疗类:Support 声明在这个包下
步骤 4 :

答案-包

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

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


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


问答区域    
2018-12-13
Manis



注意: 属性修饰符为public 默认修饰符为本包可见
package charactor1;

import item.Hero;

public class Support extends Hero{
	public void heal() {
		
	}
	public void heal(Hero h1) {
		System.out.println("为"+h1.name+"加血");
	}
	public void heal(Hero h1,float hp) {
		System.out.println("为"+h1.name+"加"+hp+"滴血");
	}
	public static void main(String[] args) {
		Hero h = new Hero();
		h.name="盖伦";
		h.hp=3000;
		Support s = new Support();
		s.heal(h);
		s.heal(h,h.hp);
	}
}
package item;

public class Hero {
	public String name;
	public float hp;
	public float armor;
	public int moveSpeed;
	public float revive(Hero h){
        h = new Hero("提莫",383);
        //System.out.println(h.hp);
        return h.hp;
    }
	 public void huixue(int xp){
		 
	        hp = hp + xp;
	        //回血完毕后,血瓶=0
	        xp=0;
	    }
	 public void attack(Hero hero, int damage) {
	        hero.hp = hero.hp - damage;
	    }
	public Hero(String name,float hp,float armor,int moveSpeed) {
		this("",0);
		System.out.println("四个参数的构造方法");
	}
	public Hero() {
		System.out.println("默认构造方法");
	}
	 //带一个参数的构造方法
    public Hero(String name){
        System.out.println("一个参数的构造方法");
        this.name = name;
    }
    //带两个参数的构造方法
    public Hero(String name,float hp){
        System.out.println("两个参数的构造方法");
        this.hp = hp;
        this.name=name;
    }
//	public Hero(String heroName,float heroHP,float heroArmor,int heroMoveSpeed) {
//		System.out.println("英雄名称:"+heroName);
//		System.out.println("英雄生命值:"+heroHP);
//		System.out.println("英雄护甲:"+heroArmor);
//		System.out.println("英雄移动速度:"+heroMoveSpeed);
//	}
	
}

							






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





2018-12-07 创建一个新的包charactor1,并且让练习-治疗类:Support 声明在这个包下。
小孤心



package charactor1; public class Support extends Hero{ public void heal() { System.out.println(name+"对某个英雄进行了一次辅助"); } // 可变数量的参数 public void heal(Hero... heros) { for (int i = 0; i <heros.length; i++) { System.out.println(name + "为 " + heros[i].name+"加血"); System.out.println(name + "为 " + heros[i].name+"加了"+heros[i].hp+"血"); } } public static void main(String[] args) { Support s=new Support(); s.name="妹子"; Hero h1=new Hero(); h1.name="盖伦"; h1.hp=10; Hero h2=new Hero(); h2.name="提莫"; h2.hp=100; s.heal(h1); s.heal(h1,h2); } } package charactor1; public class Hero { String name; //姓名 float hp; //血量 }

							

							






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





2018-05-08 作业
2018-04-25 交作业
2017-11-19 heal方法里带了name为何就不行!!!
2017-10-13 导入进去,Support运行不了,为什么?还需要修改什么吗?谢谢~
2017-05-13 heal方法里面应该是hero.name吧,不然输出的charactor.Support@3639b3a2啊
2016-12-29 导入了charactor的类Hero.,SUPHero也继承了Hero,但是为什么不能使用Hero的属性呢
2016-11-24 请问左侧显示的.class文件怎么删掉呢,看着好别扭
2016-04-17 charactor 和 property 是同级目录,Hero 应该不能 import 那个 Weapon 吧?




提问之前请登陆
关于 JAVA 基础-类和对象-包 的提问

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

上传截图