由于老师要平衡同学们学习进度的原因,关于类与对象这节课我已经上过好几次了,但是每一次都能有新的收获。今天正式开班,老师将类与对象更细致的讲了一遍,在此我就说说我的收获。
老师问的第一个问题就是“什么是对象?”,我说了个“电子专业的学生”,刚说出来我就后悔了,因为我知道对象是具体的一个事件或者具体的某样东西。比如说“学生”就是一个类,“电子专业的学生”也是一个类,因为他们包括很多学生,我们不知道是哪一个,而“这个学生”就是一个对象,因为他是具体的一个人。
类是指某一个种类,而对象就是这个类里具体的一个事物。类的组成由三个部分组成:
1.属性
2.构造方法
3.普通方法(对象的行为,用途,功能)
基本格式为:
public class 类名 {
private 数据类型 属性名;
public 类名([数据类型 形参名,...]){
//代码
}
public 返回值类型 方法名([数据类型 形参名,...]){
//代码
}
}
创建对象要用到new关键字,具体方法为
类名 对象名 = new 类名();其后的“类名()”其实是类里的构造方法,可能你在类里看不到这个方法,这是因为Java里默认了一个构造方法,是空的。但是你可以重写构造方法,当然也可以在括号里传入参数,但这时创建对象时也要在括号里传入参数,否则会报错。如:
public class ATM(){
private String name; //定义这个类的姓名属性
//重写构造方法,传入字符串参数作为name
public ATM(String s){
name=s;
}
}
这时新建对象就要这么写
ATM atm=new ATM("奥特曼");//这样直接就新建了一个姓名为“奥特曼”的对象
需要注意的是构造方法的名称一定要与类名一样,格式为:
public 类名([数据类型 形参名,...]){
//代码
}
在编写代码过程中会遇到方法重载与重写的问题,一开始我也哟点分不清,后来搞懂了:
重载跟重写,是Java多态型的两种不同表现,重载是静态多态性,即同名不同参,不同类中方法名称相同但是传入参数不同,方法体也可以不同,好比一个人可以用不同的餐具。重写就是覆盖,动态多态性,同名又同参,方法体可以改变。
下面给出一个场景并介绍如何用代码实现的步骤:
场景:奥特曼和小怪兽进行PK,直到一方的血量为0时,结束战斗谁胜利!(可选攻击力)
1.找出场景中的对象:
奥特曼和小怪兽
2.找出对象的特征和行为:
奥特曼
特征:名字,血量,攻击力,防御力 行为:PK(小怪兽)
小怪兽
特征:名字,血量,攻击力,防御力 行为:PK(奥特曼)
3.根据对象,特征,行为和类的格式编写代码。
4.创建(实例化,实例)对象,调用方法。
创建对象的关键字:new
格式:
类名 对象名 = new 构造方法(实参,...);
ATM atm = new ATM("奥特曼");
Monster m = new Mosteer();
调用方法:
格式:
对象名.方法名(实参);
atm.setName("无名");
atm.pk(m);
下面给出奥特曼类的代码:
//创建一个奥特曼类,包括其name,blood,attack,defence基本属性
//还包括一个与角色类的pk方法
public class ATM {
//设置基本属性
private String name;//姓名
private int blood;//血量
private int attack;//攻击力
private int defence;//防御力
//构造方法
public ATM(String n,int blood,int attack,int defence){
name=n;
this.blood=blood;
this.attack=attack;
this.defence=defence;
}
//对于属性的set和get方法
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getBlood() {
return blood;
}
public void setBlood(int blood) {
this.blood = blood;
}
public int getAttack() {
return attack;
}
public void setAttack(int attack) {
this.attack = attack;
}
public void setDefence(int d){
defence=d;
}
public int getDenfence(){
return defence;
}
//pk方法,首先判断奥特曼攻击力是否大于角色类防御力,如大于则造成伤害,否则无法对角色类造成伤害
//奥特曼的攻击力减去角色类的防御力等于怪奥特曼兽对角色类造成的伤害
//角色类原本的血量减去伤害值即为pk过后剩余血量,此时输出剩余血量
public void pk(Monster R){
if(attack>R.getDefence()){
R.setBlood(R.getBlood()-(attack-R.getDefence()));
System.out.println(name+"攻击了"+R.getName()+","+R.getName()+"剩余血量为:"+R.getBlood());
}else{
System.out.print(name+"打不过"+R.getName()+",无法对其造成伤害");
}
}
}
剩下的详细代码在我的第二篇博文“类的继承”中。
相关推荐
Java入门第一课主要针对初学者,旨在提供一个良好的起点,帮助理解Java编程语言的基本概念和语法。这个课程可能源自GitHub上的一个开源项目,因此,它应该是动态更新的,随着学习者的需求和技术的发展而不断丰富。 ...
Java是一种面向对象的编程语言,具有跨平台性、健壮性、高安全性的特点。 环境变量配置:配置环境变量是为了让操作系统能够识别Java命令。path环境变量指定操作系统的可执行指令路径,classpath环境变量指定Java...
- **面向对象编程**:Java是一种完全支持面向对象编程的语言,其四大特性——封装、继承、多态和抽象,是Java SE学习的重点。通过类与对象的概念,开发者能够构建出复杂且可维护的应用程序。 - **图形界面**:Java...
Java学习第一课,是编程之旅的起点,尤其对于那些对编程世界充满好奇的初学者而言。Java是一种广泛使用的面向对象的编程语言,由Sun Microsystems(现已被Oracle公司收购)于1995年推出。它的设计目标是具有高度的可...
Java学习第一课 H 在Java学习的初期,我们通常会从基础语法和核心概念开始,以便为后续的深入学习打下坚实的基础。本课“JAVA学习第一课 H”聚焦于Java编程语言的基本要素,帮助初学者理解这个强大而广泛使用的编程...
### Java教程第一课知识点概述 #### 一、Java语言简介 Java是由Sun Microsystems公司于1995年推出的一种高级编程语言,其设计目标是为了适应网络计算环境的需求,特别是万维网的应用。Java语言的核心特点是“一次...
第4章 类与对象 第5章 消息、继承与多态 第6章 数组 第7章 字符串类 第8章 文字与图形GUI设计 第9章 常用组件GUI设计 第10章 高级组件GUI设计 第11章 异常处理 第12章 多线程 第13章 输入与输出 第14章 网络编程 第...
### Java第一课:HelloWorld程序解析 #### 一、引言 在计算机编程的世界里,几乎每一位程序员都从“Hello World”程序开始他们的编程之旅。这个简单的程序不仅是一段代码,更是开启编程大门的钥匙。本文将从Java...
Java学习第一课F主要聚焦在Java编程语言的基础概念和核心特性上。Java是一种广泛使用的面向对象的编程语言,由Sun Microsystems(现为Oracle Corporation的一部分)于1995年发布。它的设计目标是具备“简单性、面向...
"JAVA学习第一课 E"很可能是针对初学者的Java编程入门教程。"E"可能代表"Essentials"或"Elementary",暗示这一课会涵盖Java编程的基础概念和语法。 在Java的学习过程中,首先会接触到的是Java环境的搭建,包括下载...
根据给定的部分内容中的第一段文字,我们可以猜测这是一个绘制简单图形的练习题。具体步骤如下: 1. **理解题目**:题目要求绘制一个菱形图案。 2. **分析需求**:菱形由上半部分和下半部分组成,需要通过循环结构...
【Java设计实践第一课】是针对初级学员的Java程序入门课程,旨在帮助初学者系统学习和掌握Java编程的基础知识和高级特性。课程分为两周进行,涵盖了从基础到进阶的各种主题。 第一周的课程主要围绕Java语言基础和...
Java学习第一课 G 在Java的学习旅程中,第一课通常会涵盖基础概念,为后续深入学习打下坚实的基础。"G"可能代表了课程的某个阶段或者特定的主题,但在这个场景下,没有足够的信息来具体解释它所指代的内容。然而,...
此外,Java还提供了内部类的概念,允许在一个类的内部定义另一个类,增强代码的组织性和封装性。 #### 五、访问权限修饰符与final关键字 **访问权限修饰符**(public, protected, private, default)控制类、方法...
首先,实验的第一个部分涉及创建一个名为`Course`的类,用于表示课程。课程具有三个属性:课程名(CourseName)、编号(CourseNo)和先修课号(PreNo)。类中的私有变量(private)确保了数据的封装,防止外部直接...
在Java编程语言中,类和对象是核心概念,它们构成了面向对象编程的基础。本章将深入探讨这两个概念,以及如何在实际编程中运用它们。源代码的提供将帮助我们更直观地理解这些理论知识。 首先,我们需要理解什么是类...
Java是一种广泛使用的面向对象的编程语言,由Sun Microsystems(现为Oracle公司的一部分)于1995年发布。它的设计目标是提供“一次编写,到处运行”的能力,使得开发者能够编写在不同平台上运行的代码。Java的核心...
本“JavaScript入门视频教程第一课”是针对初学者设计的,旨在帮助那些对网页编程感兴趣的人快速入门。 在这一课中,你将学习到JavaScript的基础知识,包括以下几个方面: 1. **基础语法**:JavaScript的基本结构...
类的定义,对象的生成,封装、继承及多态性 4:JAVA程序的健壮性(try…); 5:JAVA的包、目录及路径; 6:java的applet; 7:JAVA的类库(java.lang.*; java.utli.*) 8: JAVA深入(JDBC数据库编程,java.serverlet.*...