java——类与对象

类与对象基本概念

类: 类是抽象的概念集合,表示的是一个共性的产物,其中包括了特征和方法

类的实现样例:

public class Man {
	private String name;
	protected int HP;
	protected int AG;
	
	public void setName(String s) {
		name=s;
	}
	public String getName() {
		return name;
	}
	public void setHP(int n) {
		HP=n;
	}
	public int getHP() {
		return HP;
	}
	public void setAG(int n) {
		AG=n;
	}
	public int getAG() {
		return AG;
	}
	public void loseHP(int n) {
		HP-=n;
	}
	public void attack1(Man m) {
		m.loseHP(AG);
	}
}

对象: 对象是一种个性的表示,表示一个独立的个体,每个对象拥有自己独立的属性,依靠属性来区分不同对象。对于类来说,对象是抽象的类的具体化实现。

主函数中对象的创建和使用:

public class Main {
	public static void main(String[] args) {
		Hero Langren = new Hero();
		Hero Kasha = new Hero();
		Boss BOSS = new Boss();
		Langren.setName("狼人");
		Langren.setHP(100);
		Langren.setAG(20);
		Kasha.setName("卡莎");
		Kasha.setHP(80);
		Kasha.setAG(25);
		BOSS.setName("BOSS");
		BOSS.setHP(100);
		BOSS.setAR(5);
		BOSS.setAG(5);
		Hero winner;
		int win=0;
		while(true) {
			Langren.attack1(Kasha);
			System.out.println(Langren.getName()+"正在攻击"+Kasha.getName()+","+Kasha.getName()+"掉血"+Langren.getAG()+",剩余血量"+Kasha.getHP());
			if (Kasha.getHP()<=0) {
				win=1;
				break;
			}
			Kasha.attack1(Langren);
			System.out.println(Kasha.getName()+"正在攻击"+Langren.getName()+","+Langren.getName()+"掉血"+Kasha.getAG()+",剩余血量"+Langren.getHP());
			if (Langren.getHP()<=0) {
				win=2;
				break;
			}
		}
		if (win==1) {
			System.out.println("狼人获胜!");
			winner = Langren;
		}
		else {
			System.out.println("卡莎获胜!");
			winner = Kasha;
		}
		win=0;
		while(true) {
			winner.attack1(BOSS);
			System.out.println(winner.getName()+"正在攻击"+BOSS.getName()+","+BOSS.getName()+"掉血"+(winner.getAG()-BOSS.getAR())+",剩余血量"+BOSS.getHP());
			if (BOSS.getHP()<=0) {
				win=1;
				break;
			}
			BOSS.attack1(winner);
			System.out.println(BOSS.getName()+"攻击"+winner.getName()+"两次,"+winner.getName()+"掉血"+BOSS.getAG()*2+",剩余血量"+winner.getHP());
			if (winner.getHP()<=0) {
				win=2;
				break;
			}
		}
		if (win==1) {
			System.out.println(winner.getName()+"获胜!");
		}
		else System.out.println(BOSS.getName()+"获胜!");
	}

}

类的继承

修饰符相关:
java中继承方式包括:public(公用的),private(私有的),protected(受保护的),默认
1、public为公有的,对所有类可用
2、private为私有的,只对同一类可用
3、protected为受保护的,对于同一类的子类可用
4、默认即default,与protected的区别在于不可以跨包继承

继承实例:

public class Animal{

   public void move(){
      System.out.println("动物可以移动");
   }
}

public class Dog extends Animal{

   public void move(){
      System.out.println("狗可以跑和走");
   }
}

类的重写

重写的条件:
1、参数列表完全相同
2、返回值类型相同
3、父类方法只能被子类重写
4、访问权限不能比父类中方法的访问权限低,如父类是public,子类不能是protected

以下重写的实例:

package leidejicheng;

public class Boss extends Man {
	private int AR;
	
	public void setAR(int ar) {
		AR = ar;
	}
	public int getAR() {
		return AR;
	}
	public void loseHP(int n) {
		HP -= n+AR;
	}
	public void attack1(Man m) {
		m.loseHP(AG);
		m.loseHP(AG);
	}
}

Boss类是Man类的子类,对于loseHP和attack1方法都进行了重写

转型

java中转型分为向上转型和向下转型

向上转型
假设A和B为两个类,A为父类,B为子类

A a;
a = new B();

向上转型中调用对象的方法时,可以调用到子类中重写的方法,但是子类自己特有的方法会缺失。

向下转型

A a;
a = new B();
B b = (B)a;

向下转型后的对象调用的方法将都会是子类中重写或者新定义的方法。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值