Java学习笔记(1)— 类与对象

开始学Java之后,我第一个接触的就是类与对象。既然Java是面向对象的编程,那么没有对象,编个毛线的程···哈哈哈哈,不过学了“类与对象”就不愁没有对象了,客观存在的任何事物都可以做你的对象(手动狗头)。

现实生活中的类与对象

  • 对象:一个具体的实体或者一个具体的事物。
    对象应该是具体的,比如现在面前的电脑,手边的那个水杯等等。
    对象的描述:属性&功能
    比如:
    面前的电脑:属性:品牌、型号、尺寸···
    功能:写文章、浏览网页、看视频···
  • :所有的具有相同属性功能的对象的集合。
    比如“电脑”、“水杯”等。
    其中的“功能”,用“方法”描述。
  • 总结一下,类是对象的抽象,而对象是类的具体实例。对象是类的实例,类是对象的模板
    在计算机中,类是抽象的,不占用内存,而对象是具体的,占用存储空间。类是用于创建对象的蓝图,它是一个定义包括在特定类型的对象中的方法和变量的软件模板。

Java中的类

  • 类的创建 关键字: class
    格式:public class 类名 { }
  • 类的属性
    格式:public 属性类型 属性名;
  • 类的方法
    格式: public 方法返回值类型 方法名(参数类型1 参数名1,……){
    方法需要执行的内容
    }
    注意:1、方法内部,需要使用自己这个类的属性,直接写属性名即可;
    2、方法后面的参数为方法需要使用的外部条件。

Java中的对象

  • 对象的创建 关键字: new
    格式: 类名 对象名 = new 类名();
  • 对象的属性使用
    格式: 对象名.属性名
  • 对象的方法使用
    格式: 对象名.方法名(参数值,……);

例子

举个栗子1–学生小张在学习英语课程,每次学习让英语课程的课时减少1,重复学习,直到英语课程的课时减少为0,学习完成, 学生小张的学分增加英语课程的学分。

  • 第一步:分析场景中有哪些对象?
    学生小张、英语课程

  • 第二步:分析对象的属性和方法?

  •  学生春蕾:
    属性:学分、姓名
    方法:学习课程
    参数:课程对象
    方法体:1、课程的课时减少1
           2、判断课程的课时是否大于0
           3、学生的学分增加课程的学分
     	
     英语课程:
     属性:课时、学分、课程名
     方法:\
         **注意**:方法为“被xx”的被动形式时,不需要写。即只要主动形式。
    
  • 第三步:创建类

public class Student {
	//学分、姓名
	public int score;
	public String name;
	
	//学习方法
	public void study(Course c) {
		//让课程的课时减少1
		c.hours = c.hours -1;
		//输出  谁在学习什么课程,还剩多少课时完成学习
		System.out.println(name+"在学习"+c.name+"课程,还剩"+c.hours+"个课时完成学习!");
		//判断是否完成学习
		if(c.hours == 0) {
			//自己的学分增加课程的学分
			score = c.score + score;
			//输出 谁完成了什么课程的学习,获得多少个学分,现在的学分是多少
			System.out.println(name+"完成了"+c.name+"课程的学习,获得"+c.score+"个学分,现在的学分是:"+score+"。");
		}
	}
}
public class Course {
	//课时、学分、课程名
	public int hours;
	public int score;
	public String name;
}
  • 第四步:在主方法中创建对象,按照场景给对象的属性赋值,并且调用方法
//定义一个只有主方法的类    (当主函数代码较长时,可以另外写一类便于查找)
public class Mainer {
	
	//主方法
	public static void main(String[] args) {
		//创建课程对象
		Course english = new Course();
		//给英语课程的属性赋值
		english.name  = "英语";
		english.score = 4;
		english.hours = 64;
		
		//创建学生对象
		Student chunlei = new Student();
		//给学生对象的属性赋值
		chunlei.name = "春蕾";
		chunlei.score = 10;
		
		//课时大于0,重复学习
		while(english.hours > 0) {
			//学生学习课程
			chunlei.study(english);
		}
	}
}

举个栗子2—钢铁侠和美国队长互相PK,采用回合制,每次攻击,被攻击方的血量减少攻击方的攻击值,重复,直到某一方的血量小于等于0。输出:战斗的过程、结果。

package IronmanPKCaptainAmerica;

public class Blue {
		//名称、血量、攻击值
	public String name;
	public int HP;
	public int ATK;
		
		//战斗方法
		public void fighting(Red IM) {
			//血量减少对方攻击值
			IM.HP = IM.HP - ATK;
			//输出  谁被谁攻击了多少值
			System.out.println(name+"被"+IM.name+"攻击了"+IM.ATK);
			//判断自身血量
			if(IM.HP <= 0) {
				//输出  谁被谁打败了
				System.out.println(IM.name+"被"+name+"打败了");
			}
		}
}

public class Red{
	//名称、血量、攻击值
	public String name;
	public int HP;
	public int ATK;
	
	//战斗方法
	public void fighting(Blue CA) {
		//血量减少对方攻击值
		CA.HP = CA.HP - ATK;
		//输出  谁被谁攻击了多少值
		System.out.println(name+"被"+CA.name+"攻击了"+CA.ATK);
		//判断自身血量
		if(CA.HP <= 0) {
			//输出  谁被谁打败了
			System.out.println(CA.name+"被"+name+"打败了");
		}
	}
}
public class Main {
	//主方法
	public static void main(String[] args) {
		Red Ironman = new Red();
		Blue CaptainAmerica = new Blue();
		//给战士赋值
		Ironman.name = "钢铁侠";
		Ironman.HP = 100;
		Ironman.ATK = 3;
		CaptainAmerica.name = "美国队长";
		CaptainAmerica.HP = 80;
		CaptainAmerica.ATK = 4;
		
		//血量大于0,持续战斗
		while(Ironman.HP > 0 && CaptainAmerica.HP > 0 ) {
			Ironman.fighting(CaptainAmerica);
			if(CaptainAmerica.HP > 0) {
				CaptainAmerica.fighting(Ironman);
			}
		}   
	}

发布了2 篇原创文章 · 获赞 0 · 访问量 41

猜你喜欢

转载自blog.csdn.net/nulinulidelcl/article/details/96327129