初学面向对象感觉有一定的难度,视频看完,觉得自己没学明白,真到自己动手写的时候认识到自己却似还没学明白,还是要写大量的实例才能加深自己的理解及对知识的掌握。
类和对象
类是Java中最基本的概念之一,它是一种用户自定义的数据类型。 在Java中,我们使用类来描述一类对象的共同属性和行为。对象是类的一个实例,它具有类所描述的属性和方法。
封装
封装是面向对象编程的一种重要概念。它可以将数据和方法隐藏在类的内部,仅允许类的公共接口与外界交互。这提高了程序的安全性和可维护性,并使代码更易于理解和扩展。
继承
继承是一种面向对象编程的重要概念,它允许类在现有类的基础上创建新类。新类称为子类,已存在的类称为父类或超类。子类可以继承父类的属性和方法,还可以添加新的属性和方法。继承可以提高代码的可重用性和可扩展性。
下面是我学习Java后的一个不太成熟的小游戏(全自动)
定义了一个角色类,其中包含了角色的姓名和血量属性,以及一个攻击方法。攻击方法接收一个角色对象作为参数,出造成的伤害并更新被攻击角色的血量属性。
文字版格斗游戏
package 文字版格斗游戏;
import java.util.*;
import javax.management.relation.Role;
public class role {
private String name;
private int blood;
public role() {
}
public role(String name,int blood) {
this.name=name;
this.blood=blood;
}public String getname() {
return name;
}public void setname(String name) {
this.name=name;
}public int getblood() {
return blood;
}public void setblood(int blood) {
this.blood=blood;
}
//定义一个方法用于攻击别人
//思考谁攻击谁?
//role r1=new role();
//role r2=new role();
//r1.攻击r2;
//方法的调用者去攻击参数
public void attack(role ro) {
//计算造成的伤害1-20
Random r = new Random();
int hurt = r.nextInt(20) + 1;
//剩余血量
int remainBlood = ro.getblood() - hurt;
ro.setblood(remainBlood);
System.out.println(this.getname() + "举起拳头,打了" + ro.getname() + "一下," + "造成了" + hurt+"点伤害," + ro.getname()
+ "还剩下了" + remainBlood + "点血");
}
}
package 文字版格斗游戏;
public class GameTest {
public static void main(String[] args) {
//创建第一个角色
role r1=new role("乔峰",10000);
//创建第二个角色
role r2=new role("鸠摩智",100);
while(true) {
//r1开始攻击r2
r1.attack(r2);
//判断r2的血量
if(r2.getblood()<=0) {
r2.setblood(0);
System.out.println(r1.getname()+"K.O了"+r2.getname());
break;
}//r2开始攻击r1
r2.attack(r1);
if(r1.getblood()<=0) {
r1.setblood(0);
System.out.println(r2.getname()+"K.O了"+r1.getname());
break;
}
}
}
}