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);
			}
		}   
	}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
电子图书资源服务系统是一款基于 Java Swing 的 C-S 应用,旨在提供电子图书资源一站式服务,可从系统提供的图书资源中直接检索资源并进行下载。.zip优质项目,资源经过严格测试可直接运行成功且功能正常的情况才上传,可轻松copy复刻,拿到资料包后可轻松复现出一样的项目。 本人系统开发经验充足,有任何使用问题欢迎随时与我联系,我会及时为你解惑,提供帮助。 【资源内容】:包含完整源码+工程文件+说明(若有),项目具体内容可查看下方的资源详情。 【附帮助】: 若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步。 【本人专注计算机领域】: 有任何使用问题欢迎随时与我联系,我会及时解答,第一时间为你提供帮助,CSDN博客端可私信,为你解惑,欢迎交流。 【适合场景】: 相关项目设计中,皆可应用在项目开发、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面中 可借鉴此优质项目实现复刻,也可以基于此项目进行扩展来开发出更多功能 【无积分此资源可联系获取】 # 注意 1. 本资源仅用于开源学习和技术交流。不可商用等,一切后果由使用者承担。 2. 部分字体以及插图等来自网络,若是侵权请联系删除。积分/付费仅作为资源整理辛苦费用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值