我的Java学习之路(一):简谈类与对象

                                                       类与对象

这是作者第一次在CSDN上写博客,因为目前正在从零学习Java(之前仅有微薄的C++基础),希望通过每节课的学习,最后写一篇技术博客出来,达到对知识的良好梳理与总结,进而锻炼个人水平。本人目前就读于中南大学资源与安全工程学院,非科班出身。但我认为IT行业更注重实力,希望能通过自己不懈的努力在编程方面取得成就。由于目前水平有限,且是第一次写博客,可能排版,代码安排不太美观,文章中也可能有疏漏,不足处,还望批评指正(手动抱拳)。(注:本系列文章所使用的环境均为eclipse)

本文是第一谈:类与对象

首先,我们来定义一下对象,那便是具有一定属性与特征的事物,是一个具体的实体/事物。比如说,我们面前桌子上的水杯,我们面前的这台电脑…它具有一定的属性(水杯可用来装水,电脑可用来编程,游戏,社交等等),和一定的特征(是“我们”面前的,可盛水的类似容器的水杯,是“我们”面前的电脑)。这个概念本身很简单。而我们要做的就是把不同的对象归为一个类,把具有相同属性与特征的事物放在一个类里面,对它们进行整体的处理。通常来讲,一个是具有相同特征和属性的对象的集合

在Java中,类的定义格式为public class 类名{},一般在创建类之后,类会自动定义好。
类中属性的定义格式为public 属性类型 属性名;
类中方法的定义格式为public 方法返回值类型 方法名(参数类型 参数名...){方法体}
对象的定义格式为类名 对象名 = new 类名();
对象的属性使用:对象名.属性名;
对象的方法使用:对象名.方法名(参数值…)

介绍了这些,我们先来分析一个例子:
学生小明在学习心理健康课程,每次学习让心理健康课程的课时减少1,重复,直到心里健康课程的课时减少0,学习完成,小明的学分增加心里健康课程的学分。

整体思路:

第一步: 分析场景中有哪些对象?
学生小明、 心里健康课程
第二步:分析场景中对象有哪些属性和方法
学生小明:
属性:学分、姓名
方法:学习
心理健康课程:
属性: 课时、学分、课程名
方法:
第三步:创建类
第四步:在主方法中创建对象,给对象的属性赋值,按照场景调用方法

本人将代码分为三个板块:学生类、课程类、主函数。

学生类部分代码:

package object;

public class Student {
	//学分、姓名
	public int score;
	public String name;
	
	//学习
	//参数:课程对象
	public void study(Course c) {
		//课程的课时减少1
		c.hours--;
		//输出   谁在学习什么课程,还剩多少课时完成学习
		System.out.println(name+"在学习"+c.name+"课程,还剩"+c.hours+"个课时完成学习!");
		//判断是否完成学习
		if(c.hours == 0) {
			//自己的学分增加课程的学分
			score += c.score;
			//输出  谁完成了什么课程的学习,获得多少个学分,现在的学分是多少
			System.out.println(name+"完成了"+c.name+"课程的学习,获得"+c.score+"个学分,现在的学分是:"+score+"。");
		}
	}

}

课程类部分代码:

package object;

public class Course {
	//课时、学分、课程名
	public int hours;
	public int score;
	public String name;
}

主函数部分代码:

package object;

public class Mainer {
	//主方法
	public static void main(String[] args) {
		//创建学生对象
		Student xiaoming = new Student();
		//给学生的属性赋值
		xiaoming.name = "小明";
		xiaoming.score = 5;
		
		//创建课程对象
		Course xinli = new Course();
		//给课程对象的属性赋值
		xinli.name = "心理健康";
		xinli.hours = 10;
		xinli.score = 5;
		
		//课程的课时大于0,则重复学习
		while(xinli.hours > 0) {
			//学生学习课程
			xiaoming.study(xinli);
		}
	}

}

这是运行结果:在这里插入图片描述
根据本节我们可以做一个练习:美国队长和钢铁侠互相PK,采用回合制,每次攻击让对方的血量减少攻击方的攻击值,直到某一方的血量小于等于0
输出:战斗的过程、结果

整体思路:
第一步: 分析场景中有哪些对象?
第二步:分析场景中对象有哪些属性和方法
第三步:创建类
第四步:在主方法中创建对象,给对象的属性赋值,按照场景调用方法

我定义了三个板块:钢铁侠类、美国队长类、主函数。

钢铁侠类部分代码:

package 练习;
public class man {
public int blood;
public int demage;
public String name;public void PK(team A)
{
	A.blood--;
	System.out.println(name+"对"+A.name+"造成了"+demage+"点伤害,"+A.name+"此时的血量为:"+A.blood);
}
}

美国队长类部分代码:

package 练习;
public class team {
public int blood;
public int demage;
public String name;
public void PK(man a)
{
	a.blood--;
	System.out.println(name+"对"+a.name+"造成了"+demage+"点伤害,"+a.name+"此时的血量为:"+a.blood);
}
}

主函数类部分代码:

package 练习;
public class PK {
public static void main(String[] args)
{
	team US = new team();
	man  iron=new man();
	iron.demage=1;
	US.demage=2;
	iron.blood=10;
	US.blood=15;
	iron.name="钢铁侠";
	US.name="美国队长";
	while(US.blood>0&&iron.blood>0)
	{
		if(US.blood==0)
			break;
		else
		iron.PK(US);
		if(iron.blood==0)
			break;
		else
			US.PK(iron);
	}
	if(US.blood==0)
		System.out.println("钢铁侠获胜!");
	if(iron.blood==0)
		System.out.println("美国队长获胜!");
}
}

这是运行结果:
在这里插入图片描述

以上是本次全部内容。

                                                                                                        2019.06.29
                                                                                                       笔者于湖南长沙
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值