1.找出生活中的对象?
对象:只要是生活中具体的某一个物体或者具体的某一个事物就是一个对象。
举例:
某一个学生
特征:姓名,性别,学分,年龄,学校,....
行为:考试,说话,睡觉,吃饭,学习,打游戏,看电视,...
某一个篮球
特征:形状,材料,颜色,重量,半径
用途、功能、行为:弹,
某一支笔
熊哥
你眼睛里看到的任何一个物体就是一个对象。
1.找对象
2.找对象的特性和行为
2.类的组成
生活中的分类,是根据对象相似的特征和相似的行为进行归类的。
程序中类,是按照固定的格式,对对象的特征和行为进行的定义,定义成一个相应的模板。
程序中类由2个部分组成:1.属性(对象的特征) 2.方法(对象的行为)
3.类的基本格式
public class 类名 {
//定义属性的格式
private 数据类型 属性名;
//方法的格式
public 返回值数据类型 方法名(数据类型 形参名,...){
}
}
4.实例化对象和调用方法的格式
实例化对象的关键字是:new
格式:
类名 对象名 = new 类名();
Student stu = new Student();
调用方法的格式
对象名.方法名(实参或者参数值,...);
stu.setName("张三");
int s = stu.getScore();
s-=1;
stu.setScore(s);
stu.study();
stu.play();
5.对象是否可以作为参数?
1.定义的类是否可以作为数据类型?
可以的
2.你用类实例化对象的是可以作为参数的。
6.练习
回合对战 直到一方能量为0,对战结束。
代码:
package cn.trainingcamp;
public class SmallGame {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
//实例化一个OutMan对象
OutMan outman = new OutMan();
outman.setName("奥特曼");
outman.setEnergy(100);
//实例化一个Boss对象
Boss boss = new Boss();
boss.setName("兽神");
boss.setEnergy(50);
//实例化一个Monster对象
Monster monster = new Monster();
monster.setName("小怪兽");
monster.setEnergy(40);
//战斗开始
System.out.println("====================战斗开始!=================\n");
while(outman.getEnergy() > 0 && monster.getEnergy()>0){
outman.fight(monster);
monster.fight(outman);
}
if(monster.getEnergy()<0 ){
System.out.println("战斗结束!\n"+outman.getName()+"胜利!");
}
if(outman.getEnergy()<0 ){
System.out.println("战斗结束!\n"+monster.getName()+"胜利!");
}
while(outman.getEnergy() > 0 && boss.getEnergy()>0){
outman.fight(boss);
monster.fight(outman);
}
if(boss.getEnergy()<0 ){
System.out.println("战斗结束!\n"+outman.getName()+"胜利!");
}
if(outman.getEnergy()<0 ){
System.out.println("战斗结束!\n"+boss.getName()+"胜利!");
}
}
}
*************************OutMan类****************************
package cn.trainingcamp;
public class OutMan {
//定义名字和战斗力
private String name;
private int energy;
//设置属性:名字和战斗力
public void setName(String name){
this.name = name;
}
public String getName(){
return name;
}
public void setEnergy(int energy){
this.energy = energy;
}
public int getEnergy(){
return energy;
}
//设置行为:打boss
public void fight(Boss boss){
boss.setEnergy(boss.getEnergy()-1);
System.out.println(boss.getName()+"被"+name+"攻击了!\n"+boss.getName()+"剩余血量为"+boss.getEnergy());
}
//设置行为:打小怪兽
public void fight(Monster monster){
monster.setEnergy(monster.getEnergy()-2);
System.out.println(monster.getName()+"被"+name+"攻击了!\n"+monster.getName()+"剩余血量为"+monster.getEnergy());
}
}
****************************Monster类**************************
package cn.trainingcamp;
public class Monster {
//定义名字和战斗力
private String name;
private int energy;
//设置属性:名字和战斗力
public void setName(String name){
this.name = name;
}
public String getName(){
return name;
}
public void setEnergy(int energy){
this.energy = energy;
}
public int getEnergy(){
return energy;
}
//设置行为:打OutMan
public void fight(OutMan outman){
outman.setEnergy(outman.getEnergy()-1);
System.out.println(outman.getName()+"被"+name+"攻击了!\n"+outman.getName()+"剩余血量为"+outman.getEnergy());
}
}
*******************************Boss类********************************
package cn.trainingcamp;
public class Boss {
//定义名字和战斗力
private String name;
private int energy;
//设置属性:名字和战斗力
public void setName(String name){
this.name = name;
}
public String getName(){
return name;
}
public void setEnergy(int energy){
this.energy = energy;
}
public int getEnergy(){
return energy;
}
//设置行为:打OutMan
public void fight(OutMan outman){
outman.setEnergy(outman.getEnergy()-1);
System.out.println(outman.getName()+"被"+name+"攻击了!\n"+outman.getName()+"剩余血量为"+outman.getEnergy());
}
}
7.总结
java中类与生活中的类相似,但又有不同,既具体,又可以说不具体,比如“人类”就是一个类,那么具体的某个人“张三”就是“人类”这个类的对象,而“名字、年龄”等信息就是对象的属性,人的动作比如“吃饭、穿衣”等就是对象的方法。总之类就是有相同特征的事物的集合,而对象就是类的一个具体实例。同时类有多态和继承,例如“人类”可以分为“男人、女人”,“老人、小孩”那么“男人、女人”就是“人类”的子类等等。
另外,需要注意在java中所定义的类可以作为一种数据类型出现;定义属性时定义为私有可以保护信息;同名不同类的函数使用是不会冲突等等。
有三种类型的类:公有类(public)、私有类(private)、缺省类。
公有类在所有包中都是可见的。Java为用户提供的标准类几乎都是公有类。
只有内部类才允许声明为私有类,而普通类或包含内部类的外部类不允许声明为私有类。
通过一个对象调用它所属类的一个方法,就是向该对象发送一条消息。消息名就是方法名,而方法的参数表内则指明了该消息应带来的各种信息, 方法的返回值是为响应消息而向消息发送者发送的返回信息。
分享到:
相关推荐
【标题】"2023小码王暑期集训-杭州营8月第一期-X02"揭示了这是一个关于编程教育的活动,特别是在2023年的暑假期间,由小码王组织,地点设在杭州,是8月份的第一期课程,编号为X02。这个标题暗示了该活动可能是一个...
01-2索引原理.mp4 01-3组合索引.mp4 01-4索引分析01.mp4 01-5索引分析02.mp4 02 02-1锁的介绍.mp4 02-2表锁.mp4 02-3-MDL.mp4 02-4-1行锁介绍.mp4 02-4-2行读锁和行写锁.mp4 02-4-3GAP锁.mp4 02-4-4死锁....
政治总复习随堂集训-选修5专题4劳动就业与守法经营.docx
2014高考政治必修3总复习随堂集训-第9课推动社会主义汇总.docx
2019高考二轮专题限时集训-书面表达之书信邮件 说明文(英语).docx
2014政治总复习随堂集训-选修5专题4劳动就业与守法经营(精).pdf
蓝桥杯大赛少儿创意编程组集训-难度一 本资源是蓝桥杯大赛少儿创意编程组集训的难度一课程,旨在使学员掌握EV3编程的基础知识和相关环境的基本使用。课程内容包括电脑和EV3主机基本操作、马达基础、传感器基础、...
《信奥帮-信息学奥赛-CSP-J1S1初赛集训知识点解析》 在信息技术日益发展的今天,信息学奥赛(IOI)已成为青少年展现编程技能和逻辑思维能力的重要舞台。CSP(Contest Selection Process)是NOIP(全国青少年信息学...
2. **国家集训队2016论文集.pdf**:同上,2016年的论文集提供了对当年集训队成员的深入洞察,以及他们在信息学领域的最新进展。 3. **2021集训队论文初稿合集 页码待修.pdf**:这个文件可能是2021年集训队论文的...
后台管理系统(供管理员使用): (1)登录、查看、修改个人信息(姓名、性别、年龄、学号/工号...(2)角色管理:分为管理员、老师、和学生三种角色 (3)用户管理:对用户进行添加、删除、修改、重置密码等操作 ……
emmmm,好好加油,相信你的数学建模会学的更好的,好好干,数学建模要多看论文,多看看往年的题目,emmmm,好好加油,相信你的数学建模会学的更好的,好好干,数学建模要多看论文,多看看往年的题目
2. 论文集内容:国家集训队论文集通常包含了集训队员对特定算法、数据结构、竞赛策略的深入研究,以及他们在解决问题过程中的思考和心得。例如,2015年论文集可能涵盖当年集训队成员在动态规划、图论、字符串处理等...
第二章 DAS-2 第二章 DAS-3 第二章 DAS-4 第二章 DAS-5 第三章 NAS技术介绍-0 第三章 NAS技术介绍-1 第四章 SAN技术-0 第四章 SAN技术-1 第四章 SAN技术-2 第四章 SAN技术-3 第四章 SAN技术-4 第四章 SAN...
- **组合索引**:`ALTER TABLE table_name ADD INDEX index_name(column1, column2, ...);` #### 删除索引 - `DROP INDEX index_name ON table;` #### 查看索引 - `SHOW INDEX FROM table_name\G;` ### 索引原理...
* [优化](#优化-2) + [算法优化](#算法优化) + [程序优化](#程序优化) + [语言](#语言) * [策略](#策略) + [策略](#策略-1) + [倍增](#倍增) + [二分](#二分) + [调整](#调整) + [随机化](#随机化) + [非...
《国家集训队论文99-17.zip》是一个压缩包文件,包含了1999年至2014年期间,国家集训队的论文集合。这个资源对于研究计算机科学,特别是参与或关注ACM(国际计算机科学奥林匹克)竞赛的人来说极具价值。ACM竞赛是...
CSP-J1/S1(NOIP)信息学奥赛初赛集训基础知识 本资源摘要信息是关于 CSP-J1/S1(NOIP) 信息学奥赛初赛集训基础知识的总结,涵盖了算法及数据结构的基础知识,包括算法定义、时间复杂度、空间复杂度、算法评价、排序...
清北学堂五一化学竞赛集训七-导学资料-分析化学(1、2).pdf
2. **论文**:可能是集训队员或教练关于信息学领域的研究论文,涵盖了最新的理论进展、技术应用或竞赛策略。阅读这些论文有助于深入理解信息学竞赛的前沿动态。 3. **THU集训**:THU是清华大学的简称,这个文件夹...
【国家集训队1999-2003】是一个涵盖了从1999年至2003年期间国家集训队相关活动的压缩包文件。这个文件集合可能包含了这段时间内国家集训队成员的研究成果、技术报告、竞赛资料或者学术论文等内容,旨在为学习者提供...