java subject类_Java中的类和对象

Java是一门完全面向对象的编程语言,面向对象即使用代码来模拟生活中的场景,其中类和对象是面向对象编程的基础核心。

首先我们要理解什么是现实生活中的类和对象。对象即为现实生活中的某个具体的物体或具体事物,如:某台电脑、某台手机、某个人等。而类则是根据对象相似的特征和相似的行为(功能/用途)进行分类,如:根据颜色、材质、显卡、CPU、内存等特征,计算、图像处理、开机、关机、运行软件等功能将该类事物划分为电脑。

弄明白现实生活中的类和对象之后,我们需要明白在程序中的类和对象怎样表示。程序中的类由两部分组成:属性和方法。属性根据对象的特征进行定义,方法根据对象的行为(功能/用途)进行定义。类在程序中的基本格式为:

public class 类名 {

//定义属性

public 数据类型 属性名;

//定义方法

public 返回值类型 方法名(数据类型 参数名,...){

}

}

这样通过定义属性和方法,就完成了一个类的定义。但需注意的是Java中的类只是模板(类是基本单位),我们如需调用其中的属性和方法就必须通过一个对象,实例化对象在程序中的格式为:

类名 对象名 = new 类名();

实例化一个对象后,我们就可以通过这个对象来调用该类的属性和方法,调用属性和方法的格式为:

对象名.属性名

对象名.方法名(参数值,...);

这样我们就完成了对类的定义及对对象的实例化,接下来就可以根据现实生活中的场景来进行编程了。

场景:张三在学习Java课程(10课时),学完该课程后,张三的学分要增加3分。

1.我们找出场景中的对象以及对象的特征和行为(功能/用途):

张三

特征:姓名、学分

行为:学习(Java课程)

Java课程

特征:学分、名字、课时

行为:被学习(如其他对象有主动行为,则该行为可忽略)

2.我们根据对象的特征和行为,将其抽象定义成类:

//定义Student学生类

public class Student {

public String name;//姓名属性

public int score;//学分属性

//定义学习课程的方法

public void study(Subject sub){

//减少课程的课时

sub.time--;

System.out.println(name+"正在学习"+sub.name+"课程,剩余的课时是"+sub.time);

//判断课程的课时是否学完

if(sub.time<=0){

//让学生的学分加上课程的学分

score+= sub.score;

System.out.println(name+"已经学完了"+sub.name+"课程,"+name+"现在的学分是"+score);

}

}

}

//定义Subject课程类

public class Subject {

public int score;//学分属性

public String name;//名字属性

public int time;//课时属性

}

3.定义主函数的类,在主函数中实例化对象,并通过调用属性和方法完成该场景的编程。

//定义主函数的类

public class Manager {

//定义程序的入口主函数

public static void main(String [] args){

//实例化Student学生类的对象

Student stu = new Student();

//设置学生对象的属性值

stu.name = "张三";

stu.score = 0;

//实例化Subject课程类的对象

Subject sub = new Subject();

//设置课程对象的属性值

sub.name = "Java";

sub.score = 3;

sub.time = 10;

//循环判断课程的课时是否还未学完

while(sub.time>0){

//让学生对象stu去学习课程对象sub

stu.study(sub);

}

}

}

最终输出:

张三正在学习Java课程,剩余的课时是9

张三正在学习Java课程,剩余的课时是8

张三正在学习Java课程,剩余的课时是7

张三正在学习Java课程,剩余的课时是6

张三正在学习Java课程,剩余的课时是5

张三正在学习Java课程,剩余的课时是4

张三正在学习Java课程,剩余的课时是3

张三正在学习Java课程,剩余的课时是2

张三正在学习Java课程,剩余的课时是1

张三正在学习Java课程,剩余的课时是0

张三已经学完了Java课程,张三现在的学分是3

这样,就通过定义类和对象完成了对该场景的编程。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值