由于老师要平衡同学们学习进度的原因,关于类与对象这节课我已经上过好几次了,但是每一次都能有新的收获。今天正式开班,老师将类与对象更细致的讲了一遍,在此我就说说我的收获。
老师问的第一个问题就是“什么是对象?”,我说了个“电子专业的学生”,刚说出来我就后悔了,因为我知道对象是具体的一个事件或者具体的某样东西。比如说“学生”就是一个类,“电子专业的学生”也是一个类,因为他们包括很多学生,我们不知道是哪一个,而“这个学生”就是一个对象,因为他是具体的一个人。
类是指某一个种类,而对象就是这个类里具体的一个事物。类的组成由三个部分组成:
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()+",无法对其造成伤害");
}
}
}
剩下的详细代码在我的第二篇博文“类的继承”中。
相关推荐
第4章 类与对象 第5章 消息、继承与多态 第6章 数组 第7章 字符串类 第8章 文字与图形GUI设计 第9章 常用组件GUI设计 第10章 高级组件GUI设计 第11章 异常处理 第12章 多线程 第13章 输入与输出 第14章 网络编程 第...
类的定义,对象的生成,封装、继承及多态性 4:JAVA程序的健壮性(try…); 5:JAVA的包、目录及路径; 6:java的applet; 7:JAVA的类库(java.lang.*; java.utli.*) 8: JAVA深入(JDBC数据库编程,java.serverlet.*...
第一天:语言环境 第二天:常量变量 第三天:流程控制 第四、五天:方法与数组 第六天:类 第七天:对象的出生 第八天:类与类继承 第九天:具体到抽象的升华 第10天:权限内部类包 第11天:API类 第12天:字符串...
课程是计算机专业选修课。Java语言是目前广为流行的面向对象程序设计语言之一,也是一门概念性和实践性都很强的专业课程
java基础课件一套。。。。。第一课:面向对象概述
最后一次课 静态修饰(共21页).ppt 优质java课件 java程序设计教程(第6版)07.数组(共57页).ppt 优质java课件 java程序设计教程(第6版)07.数组复习(共19页).ppt 优质java课件 java程序设计教程(第6版)08....
最后一次课 静态修饰(共21页).ppt 优质java课件 java程序设计教程(第6版)07.数组(共57页).ppt 优质java课件 java程序设计教程(第6版)07.数组复习(共19页).ppt 优质java课件 java程序设计教程(第6版)08....
最后一次课 静态修饰(共21页).ppt 优质java课件 java程序设计教程(第6版)07.数组(共57页).ppt 优质java课件 java程序设计教程(第6版)07.数组复习(共19页).ppt 优质java课件 java程序设计教程(第6版)08....
1.3 编写第一个java程序 14 1.3.1 在记事本中输入代码 14 1.3.2 保存代码为源代码文件 15 1.3.3 编译并运行java文件 16 1.4 照猫画虎——基本功训练 16 1.4.1 基本功训练1——更换java_home环境变量 16 1.4.2 ...
完成Java面向对象程序设计实验课的心得体会 Java面向对象程序设计实验课的心得体会 经过这几周对Java面向对象程序设计的学习,让我更加了解到Java学习的重要性。 在实验课上,我们完成多个实验,在这个阶段的学习中...
最后一次课 静态修饰(共21页).ppt 优质java课件 java程序设计教程(第6版)07.数组(共57页).ppt 优质java课件 java程序设计教程(第6版)07.数组复习(共19页).ppt 优质java课件 java程序设计教程(第6版)08....
最后一次课 静态修饰(共21页).ppt 优质java课件 java程序设计教程(第6版)07.数组(共57页).ppt 优质java课件 java程序设计教程(第6版)07.数组复习(共19页).ppt 优质java课件 java程序设计教程(第6版)08....
JAVA程序设计 基本语法, 面向对象思想, java类 WEB编程技术 JSP指令, 表单处理, Servlet JAVA EE企业开发技术
第一课:计算机中的环境变量 第二课:认识JVM 安装JDK 第三课:认识JAVA中的变量 第三课:理解类与对象 第三课附加:值传递和对象传递 第四课:继承 第五课:多态 第六课:接口 第七课:封装 第七课:集合 第八课...
最后一次课 静态修饰(共21页).ppt 优质java课件 java程序设计教程(第6版)07.数组(共57页).ppt 优质java课件 java程序设计教程(第6版)07.数组复习(共19页).ppt 优质java课件 java程序设计教程(第6版)08....
希望通过电子书了解了本书第一版内容并对其感兴趣的读者能够购买《Java面向对象编程》最新的第二版,相信它一定不会让你失望。呵呵,这也算是对矢志投身中国Java编程普及教育的孙老师的一点支持吧。。。
最后一次课 静态修饰(共21页).ppt 优质java课件 java程序设计教程(第6版)07.数组(共57页).ppt 优质java课件 java程序设计教程(第6版)07.数组复习(共19页).ppt 优质java课件 java程序设计教程(第6版)08....