1.类和对象的概念
类是对一类事物进行描述,是抽象的、概念上的定义;
对象是实际存在的该类事物的每个个体,因而也称实例。
Java语言中定义类的语法如下:
[修饰符] class 类名
{
定义构造方法;
定义属性;
定义方法;
}
创建两个具体英雄实例,为该实例的 name 属性、 age 属性赋值和 sex 属性赋值,并在控制台输出不同英雄对象的姓名、年龄和性别,调用各自英雄对象的 run()方法。
package ababab;
public class Hero {
String name;
int age;
String sex;
public void run(int speed) {
System.out.println(speed+"m/s的速度飞速狂奔");
}
public static void main(String[] args) {
Hero hero1 = new Hero();
hero1.name = "黑暗游侠";
hero1.age = 20;
hero1.sex = "女";
System.out.println("英雄的名字:"+hero1.name);
System.out.println("英雄的年龄:"+hero1.age);
System.out.println("英雄的性别:"+hero1.sex);
hero1.run(30);
System.out.println("-------------------");
Hero hero2 = new Hero();
hero2.name = "撼地神牛";
hero2.age = 30;
hero2.sex = "男";
System.out.println("英雄的名字:"+hero2.name);
System.out.println("英雄的年龄:"+hero2.age);
System.out.println("英雄的性别:"+hero2.sex);
hero2.run(60);
}
}
2.对象和引用
类是一种引用数据类型,因此程序中定义的 Hero 类型的变量实际上是一个引用,它被存放在栈内存中,指向实际的 Hero 对象,而真正的 Hero 对象则存放在堆内存中。
创建防御塔类(TowerDefence),通过两个坐标属性显示防御塔所在位置
public class TowerDefense {
int x;
int y;
public TowerDefense() {
System.out.println("防御塔已经被实例化了");
}
public static void main(String[] args) {
TowerDefense td = new TowerDefense();
td.x=10;
td.y=20;
System.out.println("防御塔横坐标="+td.x+"纵坐标="+td.y);
}
}
3.方法详解
方法是类或者对象的行为特征的抽象,是类或对象最重要的组成部分,通过方法可以实现对类的属性的操作。
方法声明格式如下
[<修饰符>] <返回类型> <方法名> ([参数列表]){方法体}
实践,代码如下:
public class tabe {
String name;
int age;
public void battle() {
System.out.println(name+"在肆无忌惮地战斗,他的年龄只有"+age+"可他的血量只有1%了...");
}
public static void main(String[] args) {
tabe xxx = new tabe();
xxx.name="魔王";
xxx.age=15;
xxx.battle();
}
4.方法参数传递
参数的传递是指实际参数向形参值的传递的过程。
创建英雄类,在该类中定义战斗方法 battle (),在该方法中 int 类型变量 count,count 初始值为1
count 表示一个计数器,用于记录战斗的次数。
代码如下:
import java.util.Scanner;
public class xswl {
int output;
int count=1;
public void battle() {
output = output-1;
if(output <= 0) {
System.out.println("对不起您的英雄已牺牲");
}
System.out.println("第"+count+++"次攻击,您的英雄当前血量"+output);
}
public static void main(String[] args) {
xswl xxx = new xswl();
Scanner input = new Scanner(System.in);
System.out.println("请输入英雄的血量");
xxx.output=input.nextInt();
for(int i =0;i<6;i++) {
xxx.battle();
}
System.out.println("战斗结束后您的英雄血量值="+xxx.output);
}