go.javamana.com


工具版本兼容问题
本章节会引入 面向对象的基本概念 (但是不会深入展开,仅仅是引入. 深入的学习会在后续的 类和对象以及 接口与继承 中展开)

相信你肯定玩过DOTA或者LOL,没玩过,也一定听说过身边有很多的朋友在玩这款游戏的

假设,我们要设计一个LOL这样的游戏,使用 面向对象的思想来设计,应该怎么做?


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



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



步骤 1 : 设计英雄这个类   
步骤 2 : 创建具体的英雄   
步骤 3 : 类的第一个字母大写   
步骤 4 : 练习-Item   
步骤 5 : 答案-Item   

步骤 1 :

设计英雄这个类

edit
LOL有很多英雄,比如盲僧,团战可以输,提莫必须死,盖伦,琴女
所有这些英雄, 都有一些共同的状态
比如,他们都有名字,hp,护甲,移动速度等等
这样我们就可以设计一种东西, 叫做类,代表英雄这样一种事物
类: 英雄(Hero)
状态: 名字, 血量,护甲,移动速度

注: 本例用到了3种数据类型 分别是 String(字符串),float(浮点数), int(整数),本章只做简单的使用 ,就不展开了,关于 变量知识的详细讲解,将在 下个章节展开.
注: 这个类没有主方法,不要试图运行它。 并不是所有的类都是有主方法的。
设计英雄这个类
public class Hero { String name; //姓名 float hp; //血量 float armor; //护甲 int moveSpeed; //移动速度 }
public class Hero {
	
	String name; //姓名
	
	float hp; //血量
	
	float armor; //护甲
	
	int moveSpeed; //移动速度
}
步骤 2 :

创建具体的英雄

edit
类就像一个模板,根据这样一个模板,可以创建一个个的具体的英雄
一个个具体的英雄,就叫一个个的 对象
new Hero() 就是java中创建一个英雄对象的意思
创建具体的英雄
public class Hero { String name; //姓名 float hp; //血量 float armor; //护甲 int moveSpeed; //移动速度 public static void main(String[] args) { Hero garen = new Hero(); garen.name = "盖伦"; garen.hp = 616.28f; garen.armor = 27.536f; garen.moveSpeed = 350; Hero teemo = new Hero(); teemo.name = "提莫"; teemo.hp = 383f; teemo.armor = 14f; teemo.moveSpeed = 330; } }
步骤 3 :

类的第一个字母大写

edit
好的编程习惯会让代码看上去更清爽,易读,容易维护
比如 类的第一个字母大写
Hero
public class Hero { }
public class Hero {

}
步骤 4 :

练习-Item

edit  姿势不对,事倍功半! 点击查看做练习的正确姿势
设计出物品这种类
类名: Item
物品有如下属性:
名字 name 类型是字符串String
价格 price 类型是整型 int

创建(实例化)3件具体物品
名称 价格
血瓶 50
草鞋 300
长剑 350
在查看答案前,尽量先自己完成,碰到问题再来查看答案,收获会更多
在查看答案前,尽量先自己完成,碰到问题再来查看答案,收获会更多
在查看答案前,尽量先自己完成,碰到问题再来查看答案,收获会更多
查看本答案会花费3个积分,您目前总共有点积分。查看相同答案不会花费额外积分。 积分增加办法 或者一次性购买JAVA 基础总计0个答案 (总共需要0积分)
查看本答案会花费3个积分,您目前总共有点积分。查看相同答案不会花费额外积分。 积分增加办法 或者一次性购买JAVA 基础总计0个答案 (总共需要0积分)
账号未激活 账号未激活,功能受限。 请点击激活
本视频是解读性视频,所以希望您已经看过了本答案的内容,带着疑问来观看,这样收获才多。 不建议一开始就观看视频

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


注: 创建Item这个类的时候,必须写在一个 Item.java的文件里,不可以使用其他文件名, 大小写也要保持一致,不能是item.java
public class Item { String name; int price; public static void main(String[] args) { Item potion = new Item(); potion.name= "血瓶"; potion.price =50; Item shoe = new Item(); shoe.name= "草鞋"; shoe.price =300; Item sword = new Item(); sword.name= "长剑"; sword.price =350; } }
public class Item {
	String name;
	int price;
	
	public static void main(String[] args) {
		Item potion = new Item();	
		potion.name= "血瓶";
		potion.price =50;
		
		Item shoe = new Item();	
		shoe.name= "草鞋";
		shoe.price =300;
		
		Item sword = new Item();	
		sword.name= "长剑";
		sword.price =350;
		
	}
}


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


问答区域    
2021-11-02 全部代码(可运行)
maozhanyang0929




准确可以输出代码: public class Hero { private String name; private int price; public static void main(String[] args) { Hero xp = new Hero(); xp.name = "血瓶"; xp.price = 50; Hero cx = new Hero(); cx.name = "草鞋"; cx.price = 300; Hero cj = new Hero(); cj.name = "长剑"; cj.price = 350; System.out.println("名称 " + " 价格"); System.out.println(xp.name + " " + " " + xp.price); System.out.println(cx.name + " " + " " + cx.price); System.out.println(cj.name + " " + " " + cj.price); } }
public class Hero {
    private String name;
    private int price;

    public static void main(String[] args) {
        Hero xp = new Hero();
        xp.name = "血瓶";
        xp.price = 50;

        Hero cx = new Hero();
        cx.name = "草鞋";
        cx.price = 300;

        Hero cj = new Hero();
        cj.name = "长剑";
        cj.price = 350;

        System.out.println("名称  " + "  价格");
        System.out.println(xp.name + "  " + "  " + xp.price);
        System.out.println(cx.name + "  " + "  " + cx.price);
        System.out.println(cj.name + "  " + "  " + cj.price);
    }
}
 
               


1 个答案

zxcvbnm00
答案时间:2021-11-07



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





2021-09-10 为啥后面加28f和536f
wfs




不知道为啥后面加28f和536f
garen.hp = 616.28f;
        garen.armor = 27.536f;
 
               


12 个答案

入门小白123
答案时间:2021-11-06
public class lianxiti { public static void main (String[]args){ String name ="盖伦"; int xueping=300; float xue=200.5f; int tiejian =200; } }

Cyanna
答案时间:2021-11-02
皮皮丶
答案时间:2021-10-24
FreedomSeeker
答案时间:2021-10-23
努力的蜗牛i
答案时间:2021-10-22
菜鸡加辣
答案时间:2021-10-22
兔一只Cc
答案时间:2021-10-16
public class Item { String name; int price; public static void main(String[] args) { Item xp =new Item();{ xp.name="血瓶"; xp.price=50; } Item cx =new Item();{ cx.name="草鞋"; cx.price=300; } Item cj =new Item();{ cj.name="长剑"; cj.price=350; } } }

Toby_20091212
答案时间:2021-10-15
public class Item { String name; int price; public static void main(String[] args) { Item health = new Item(); health.name = "血瓶"; health.price = 50; Item shoes = new Item(); shoes.name = "草鞋"; shoes.price = 300; Item sword = new Item(); sword.name = "长剑"; sword.price = 350; } }

tower
答案时间:2021-10-08
码出世界
答案时间:2021-09-21
在28后面加上f,即28f,表示将28这个常量强制转换成float这种单精度浮点数类型,因为已经在前面进行了定义:float armor,即定义armor这个常量的类型为float浮点型,而常量只能直接赋值给对应类型的变量,即float 28才能赋值给float armor这个变量。此时的表达式主要有三种,按文中代码举例:第一种:garen.armor = 27.536f;第二种:garen.armor = 27.536F;第三种:garen.armor = (float) 27.536;推荐使用第二种,即数字后加对应类型首字母大写

哈利波特的魔法棒
答案时间:2021-09-11
java代码编写中浮点数要在后面加上f才表示浮点数

yanwei22
答案时间:2021-09-10
啥啊,这好像是把这两数值设计成浮点型了吧,不是上面图上标记的int整数



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





2021-09-08 代码
2021-09-01 这个代码在eclpise写好之后,点哪里才可以运行啊,我第一次用不知道啊
2021-08-16 打卡


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

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

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

上传截图