Java图形界面基础-绘制乌龟可能会出现的问题以及浅谈Java中的静态属性

如何高效快速的调色

在上一个画乌龟的小案例中,设置颜色的语句

g.setColor(c);

可能有些人会觉得()里只能填充一种颜色,这样是不是太有限了,根本满足不了我的创作欲望,是的,Java里有更好的办法可以满足各位,我来讲述一个万能的方法那就是使用下面的这条语句

g.setColor(new Color(10,100,200));

其中10,100,200这3各参数就是大家熟知的RGB(红蓝绿三原色),最小的值是0,最大值是255,这样你就可以随意的调色了。

浅谈Java的静态机制

还记得那个main方法的完整写法吗?public static void main(String []args){},里面有一个static,它称作静态的。那么问题来了,什么事静态的呢?我问你,我是个类还是对象?当然是对象,因为我是客观存在的。那么又来了一个问题我是什么类的对象?我猜大多数人的回答应该是我是人类的对象,说我是男人类的对象可以不?说我是动物类的对象可以不?你会发现动物的描述其实很粗糙,很泛泛,男人的描述就比较的具体了,我们说人类是男人的父类,那么换句话说男人类就是人类的子类,那么动物类就是人类以及男人类的父类。另外一种说法是,人类是男人类的泛型,更加泛泛的类型。
事实上,男人对我的描述不具体,我是我爸妈的儿子类,是男人类的子类,没错吧?下面我来举一个通俗的例子
小孩子生来就不平等,我生下来就不是富二代,但是假设我爸妈结婚的时候手里有20万,那我和周围的其他孩子就不一样了,因为我有20万可以花,可是好景不长,我又有了一个弟弟,我和他都是我爸妈的儿子类的对象,按照道理讲他也有花20万的权利,我花了10万弟弟就少10万,那么20万就是静态的。静态的第一个特征就是一个类无论产生了多少的对象,静态的只有一份,大家共享;静态的第二个特征是,我爸妈结婚的时候,他们的儿子对象还不存在,但是静态的20万已经存在了。所以按照这个逻辑我们回到Java,也就是说静态的东西在类声明以前就已经存在了,就是说静态东西的出现和对象没有关系,对象的多少也不影响静态的数量,我猜各位已经猜到了,那是不是说静态的东西和类没有关系呢?是的,没有错,所以人们将静态的成员称作是类成员。
既然是类的成员。我们也应该可以理解为什么用类名直接点点也行(Color.BLUE),因为BLUE是静态成员。在回头看,为什么main方法要说明成静态的,main写在哪里?在一个类里,类从硬盘搬到内存里按道理不存在,但这个时候系统又要调用main,如果main不声明成静态的,main也就不存在了,所以声明成static也是迫不得已。
不理解没有关系,谁都要经历一个从不会到会的过程。多读多写多看肯定可以理解。
《暗黑破坏神》这款游戏大家都应该接触过,不过我不是说这个游戏怎么做, 而是借这个游戏来说明一下概念。你能想象一个经典的游戏场景:一个英雄在副本里砍小怪,假设有10个小鬼,那么这个程序该怎么写?按照前面学的知识,思路是不是先做窗体,画图,先画地图场景,再画英雄,然后再画10个小怪。不过有一个问题不知各位想到没有,英雄和小怪都在动,下一帧要在新的位置重画,其实关键的问题不是绘图,而死每个小鬼身上持有的一系列的参数,比如奔跑的速度,生命值,魔法,以及在消灭小怪之后英雄获得的经验值,如果一个小怪身上有5个数字,那么10个小怪身上就有50个数字,千万不能乱,不过话虽这么说,但是很容易乱,弄乱的结果是,英雄砍眼前的小怪但是不远处的小怪倒下了,这不是扯淡了吗?我为了方便管理,人们也想出了一个好办法,声明一个小怪的类,需要小怪的时候就new一个小怪的对象出来,并给小鬼取一个名字-小怪1.那么他的生命值就成了”小怪1的生命值”这样的做法结果是不光不会乱而且代码量也会减少很多,不用一个一个的去描述小怪的对象了,这时候Java面向对象编程的好处就体现了出来,不用再对过程进行编程重复写那些重复而且没有任何意义的代码。我们再接上面静态的问题在考虑一个问题,如果生命值不小心写成了静态会怎么样?那么大家就会共享一个值了,在游戏中的结果就是砍死了一个小怪就等于说周围一片的小怪都死了。
现在理解不了没有问题后续我会对这个静态的问题详细的拿几个案例进行说明。学习编程通过看那些教科书真的是非常痛苦,我不赞成按照教科书般的方式来讲Java,通过案例讲解时最好的学习的编程的方式,下一次更新依旧是图形界面的基础,敬请期待。

                                                              3月26日
                                                             11:45am
                                                             by WhiteJavaCoder
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值