目标:
1.掌握类和对象的格式和用途
2.把握好如何将生活中类和对象转换为程序。
面向对象编程:模拟现实生活。
所有的概念,都是源自于生活中。
1.找出生活中的对象?
对象:只要是生活中具体的某一个物体或者具体的某一个事物就是一个对象。
举例:
某一个学生
特征:姓名,性别,学分,年龄,学校,....
行为:考试,说话,睡觉,吃饭,学习,打游戏,看电视,...
某一个篮球
特征:形状,材料,颜色,重量,半径
用途、功能、行为:弹,
某一支笔
你眼睛里看到的任何一个物体就是一个对象。
1.找对象 :具体的的某个事物 独一无二的
2.找对象的特性和行为
2.类的组成
生活中的分类,是根据对象相似的特征和相似的行为进行归类的。
程序中类,是按照固定的格式,对对象的特征和行为进行的定义,定义成一个相应的模板。
程序中类由2个部分组成:1.属性(对象的特征) 2.方法(对象的行为)
3.类的基本格式
public class 类名 {
//定义属性的格式
private 数据类型 属性名;
//方法的格式
public 返回值数据类型 方法名(数据类型 形参名,...){
}
}
注:一个.java文件中只有一个类
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.你用类实例化对象的是可以作为参数的。
注: 参考String类
6.练习
1.回合制游戏:**角色和男爵Boss进行战斗,直到一方的血量为0时结束战斗,输出谁胜利了!
2.总结:类和对象总结
1.概念描述清楚
本身你自己的理解+生活中的实例+代码
个人理解:
类:一群具有相同属性、方法的物体的集合。
对象:某个类下的具体物体,有特定的属性、方法。
生活中的例子: 1.比如说 电脑 就是一个类
( 计算机(computer)俗称电脑,是一种用于高速计算的电子计算机器,可以进行数值计算,
又可以进行逻辑计算,还具有存储记忆功能。是能够按照程序运行,自动、高速处理海量数据的现代化智能电子设备。
都有显示器,键盘,鼠标,显卡,内存.....)
2.但电脑之间也有不同,如电脑品牌不同(苹果,联想,华硕,戴尔....),不同品牌的不同型号的机器硬件有所不同,
不同操作系统、 不同内存、不同键盘、不同鼠标,但大体功能一样 (即:能够按照程序运行,自动、高速处理海量数据)
所以说某品牌某型号电脑即为一个对象,它是对象的一个具体事例,具体化电脑的一些属性。
如: 联想G480 即为一个对象
3. 64位操作系统 4G内存 为相应的对象的属性值
电脑可以允许各种软件 为相应的对象的行为或方法
类的声明:public class 类名(Computer){ //声明一个类
//定义属性的格式
private 数据类型 变量名;
private String name = new String();
private int number ;
//定义方法
public 返回值类型 方法名(){}
public void setname(String n){
name=n;
}
public void setnumber(int num){
number=num;
}
}
实例化相应类的对象及其方法的调用:
类名 对象名 = new 类名();//实例化一个对象
如:Computer computer = new Computer();
对象名.方法名(参数名或数值);//方法的调用
如:computer.setname("lenovo");
computer.setnumber(480);
/**
*
* @author Guanxianxiao
*
*/
public class Zed {
private String name = new String();
private int blood ;
private int ATK;
public void setname(String n){
name=n;
}
public void setblood(int b){
blood=b;
}
public void setATK(int a){
ATK=a;
}
public String getname(){
return name;
}
public int getblood(){
return blood;
}
public int getATK(){
return ATK;
}
public void attack(Baron b){
int blood_temp=b.getblood()-this.getATK();
b.setblood(blood_temp);
System.out.println("纳什男爵的血量:"+b.getblood());
}
}
***********************************************************
/**
*
* @author Guanxianxiao
*
*/
public class Baron {
private String name = new String();
private int blood ;
private int ATK;
public void setname(String n){
name=n;
}
public void setblood(int b){
blood=b;
}
public void setATK(int a){
ATK=a;
}
public String getname(){
return name;
}
public int getblood(){
return blood;
}
public int getATK(){
return ATK;
}
public void attack (Zed z){
int blood_temp=z.getblood()-this.getATK();
z.setblood(blood_temp);
System.out.println("影流之主的血量:"+z.getblood());
}
}
***********************************************************
public class Fighting {
/**
* @param args
*/
public static void main(String[] args) {
Baron baron = new Baron();
Zed zed = new Zed();
baron.setname("大龙-纳什男爵");
baron.setblood(1000);
baron.setATK(25);
System.out.println("选手1:"+baron.getname()+"->"+"血量:"+baron.getblood()+"->"+"攻击力:"+baron.getATK());
zed.setname("影流之主-劫");
zed.setblood(700);
zed.setATK(38);
System.out.println("选手1:"+zed.getname()+"->"+"血量:"+zed.getblood()+"->"+"攻击力:"+zed.getATK());
System.out.println("*********************************开始战斗(回合制)*********************************");
int who_first;
who_first = (int) (Math.random()*2);
System.out.println(who_first);
if(who_first==0){
while(baron.getblood()>0&&zed.getblood()>0){
baron.attack(zed);
if(zed.getblood()<=0){
System.out.println(baron.getname()+"击杀了"+zed.getname());
break;
}
else{
zed.attack(baron);
if(baron.getblood()<=0){
System.out.println(zed.getname()+"击杀了"+baron.getname());
break;
}
}
}
}
else if(who_first==1){
while(baron.getblood()>0&&zed.getblood()>0){
zed.attack(baron);
if(baron.getblood()<=0){
System.out.println(zed.getname()+"击杀了"+baron.getname());
break;
}
else{
baron.attack(zed);
if(zed.getblood()<=0){
System.out.println(baron.getname()+"击杀了"+zed.getname());
break;
}
}
}
}
}
}
分享到:
相关推荐
通过分析和运行这些代码,我们可以学习到如何在Java中定义和使用类,理解面向对象编程的概念,如封装、继承和多态。同时,链表的实现有助于理解数据结构和算法,这对于任何Java开发者来说都是至关重要的技能。在实践...
【第4章 类和对象】在Java编程中,类(Class)和对象(Object)是核心概念,构成了面向对象编程的基础。面向对象编程(Object-Oriented Programming, OOP)是一种编程范式,强调以对象作为程序设计的核心,通过封装...
### Java 类与对象知识点 ...通过上述知识点的学习,我们可以更深入地理解Java中的类与对象的概念及其应用。面向对象的思想贯穿于整个Java编程语言的设计之中,掌握这些基础知识对于成为一名合格的Java程序员至关重要。
通过使用new关键字和类的构造器,我们可以创建一个新的对象。例如: ```java Person person1 = new Person(); // 创建Person类的一个对象 person1.name = "Alice"; // 设置对象的属性 person1.age = 25; person1....
本文将详细讲解Java中的类和对象。 首先,从标题和描述来看,这是一份关于Java面向对象编程的笔记,重点介绍了类和对象的概念。面向对象编程与面向过程编程的主要区别在于,面向过程编程关注的是执行步骤,而面向...
### Java培训教材:“对象和类”知识点详述 #### 一、面向对象基本概念 **1.1 编程思想** 编程思想是指程序员在编写程序时所采用的思维方式。不同的编程语言及其应用领域通常有着不同的编程思想。面向过程与面向...
在这个个人总结中,我们将深入探讨面向对象的三大基本概念:封装、继承和多态,以及它们在Java中的实现。 **封装** 是面向对象的主要特征之一,它将数据和操作这些数据的方法捆绑到一个单元——类中,以保护数据不...
第四章"类和对象"是Java编程的基础,理解和掌握这个主题对于初学者至关重要。对象是OOP的基本单元,它可以看作是具有特定属性(数据)和行为(方法)的实体。例如,我们可以创建一个人的对象,属性可能包括姓名、...
Java程序设计课程实验7主要关注的是类和对象的概念及其应用,这是Java编程中的核心部分。在Java中,类是创建对象的蓝图,它定义了一组特性和行为,而对象则是类的实例,拥有类所定义的特性并能执行类中定义的操作。 ...
在Java中,使用DatagramSocket和DatagramPacket类进行UDP通信。 9. **String字符串的用法**:Java中的String是不可变对象,它有丰富的API供开发者进行字符串操作,如concatenation、substring、indexOf、replace等...
总之,理解和掌握类与对象的概念,以及如何在Java中定义和使用它们,是进行面向对象编程的基础,也是构建高效、可维护的Java应用程序的关键。通过合理的类设计,我们可以有效地组织代码,提高代码的重用性和可扩展性...
- **个人技能提升**:供个人按照实验步骤自我学习和实践,增强对Java类和对象的熟练度。 - **项目开发**:为小型项目开发提供类设计和对象使用的参考案例,特别是在涉及数据管理、排序算法等场景。 #### 实验内容 ...
通过这个“编写Java个人档案”的教程,你将不仅掌握Java和Eclipse的基本使用,还能了解面向对象编程的基本概念,为后续的Java学习打下坚实的基础。随着技能的提升,你可以扩展这个个人档案程序,添加更多的功能,...
JAVA学习笔记 JAVA学习笔记是面向对象编程语言的学习笔记,涵盖了JAVA的基本概念、面向对象编程思想、类和对象的概念、...JAVA学习笔记涵盖了JAVA的基础知识和面向对象编程思想,帮助学习者更好地理解和使用JAVA语言。
【标题】"项目通用java类"揭示了这个压缩包中包含的是适用于各种项目开发的Java类库。这些类通常经过优化,可以满足多种常见的...同时,通过阅读和学习这些通用类的实现,也能提升开发者对Java编程和软件设计的理解。
在Java中,程序的基本结构包括类、对象、方法等。类是对象的模板,对象则是类的实例。方法是执行特定任务的代码块,它们封装了数据和行为。理解这些基本概念对于构建复杂的程序至关重要。 **2. 控制流程语句** ...
这个项目的核心功能是实现一个简单的个人通讯录系统,可以帮助学习者理解Java语言在实际应用中的基本原理,特别是涉及到文件读写和源码编写的部分。 首先,我们要了解Java编程的基础。Java是一种面向对象的编程语言...
继承允许子类从超类(父类)那里获取属性和方法,从而实现代码复用和类的层级结构。例如,`Trash_Car`可以继承`Car`类的属性和方法,同时增加自己的特定功能,如`fill_trash()`方法。 **多态(Polymorphism)** ...
Java提供了丰富的数学运算符,如`+`, `-`, `*`, `/` 和 `%`,以及`Math`类中的方法,如`Math.pow()`用于求幂,`Math.round()`用于四舍五入。 5. **异常处理**:在实际应用中,我们可能遇到非法输入,如负数收入或...