类与对象

类与对象是Java学习过程中最基本的一步,可以说没有类与对象就没有Java。

迄今为止,没有哪一本书给出了关于“类与对象”的详细定义,我们可以类比一下现实生活中的概念来理解程序设计中的“类与对象”。

1、什么是对象?

现实中的对象:小明的手机、小白的电脑、某一把椅子、这本书......可以说,你所能看到的或者想到的一个具体的事物都能被称为对象。

再深入一步,研究某一个具体的对象,比如某一台电脑,我们该如何描述它呢?如何将它与其它的电脑区分开呢?这就涉及到对象的属性。

某一台电脑:

特征:尺寸、颜色、内存、价格、重量、显卡、CPU、保修期......

功能:输入、输出、开机、计算、传输信息......

某一个人:

特征:姓名、性别、籍贯、年龄、属相、星座、身高、体重、性格、爱好......

行为:吃、喝、跑、走、跳、睡......

2、什么是类?

现实中的类:

我们把具有相似功能(行为/用途)和相似特征的对象划分为一个类。

程序设计中的类:

程序中的类是根据现实生活中的对象的特征和行为进行的抽象定义,定义的时候必须按照固定格式进行定义。

程序中的类根据两个部分组成:

(1).属性 根据对象的特征进行定义的

(2).方法(函数) 根据对象的行为/功能进行定义的

3、类的格式:

public class 类名{

//属性的定义

public 数据类型 属性名;

//方法(函数)的定义

public 返回值数据类型(不返回则写void) 函数(数据类型 参数名...){

}

}

Java中类是模板,是基本单位,不能用类名去调用属性和函数,若想调用属性和函数,必须要先实例化对象,然后根据对象名调用属性和函数。函数()里的数据类型可以为类名,参数名可以为对象名。

4、实例化对象和调用属性函数的格式:

实例化对象关键字:new

格式:

类名 对象名=new 类名()

调用属性和函数:

对象名.属性

对象名.函数名(参数值...)

5、例1 张三在学习Java课程中,学完该课程后,张三的学分要增加3分。

(1)找出例子中的对象以及对象的行为特征:

张三:

特征:姓名、学分

行为:学习(Java课程)、学分增加

Java课程:

特征:名称、学分、课时

无行为

(2)根据对象的特征行为,按照类的固定模式定义类:

有两个对象,则需要定义两个类,张三定义为Student学生类,Java课程定义为Subject课程类。

(3)定义主函数的类。在主函数中进行实例化,调用对象的属性函数。

Student.java
//定义Student学生类
public class Student{
//定义学生类的属性
      public String name;
      public int score;
//定义学生类的函数
      public void study(Stubject sub){
          sub.time--;
      System.out.println(name+"所学习的"+sub.name+"剩余课时数为"+sub.time);
          if(sub.time<=0)
            score=score+sub.score;
            System.out.println(name+"所获得的学分为"+score);
}     
}

Subject.java
//定义Subject课程类
public class Subject{
      public String name;
      public int score;
      public int time;
}

Manager.java
//定义主函数,在主函数中实例化,调用属性和函数
public class Manager{
   public static void main(String []args){
         Subject sub=new Subject();
           sub.name="Java课程";
           sub.score==3;
           sub.time==10;
         Student stu=new Student();
           stu.name="张三";
           stu.score==0;
         while(time>0){
             stu.study(sub);
}
}
}

例2 回合制对战游戏:奥特曼和小怪兽进行PK,直到一方的血量为0时结束战斗,输出谁胜利了!

奥特曼:

特征:姓名、血量

行为:(与小怪兽)PK、血量减少

小怪兽:

特征:姓名、血量

行为:(与奥特曼)PK、血量减少

Aoteman.Java
//定义奥特曼类
public class Aoteman{
     public String name;
     public int blood;
public void PK(Monster mons){
  mons.blood--;
  System.out.println(name+"攻击"+mons.name+","+mons.name+"剩余血量为"+mons.blood+"点");    
}
}

Monster.java
//定义小怪兽类
public class Monster{
      public String name;
      public int blood;
public void PK(Aoteman mons){
   mons.blood--;
   System.out.println(name+"攻击"+mons.name+","+aote.name+"剩余血量为"+aote.blood+"点");       

	}

}   


Manager.java
//定义主函数,实例化对象,调用属性和函数
public class Manager{
       public static void main(String [] args){
              
              Aoteman aote=new Aoteman();
              aote.name="奥特曼";
              aote.blood=10;
      
              Monster mons=new Monster();
              mons.name="小怪兽";
              mons.blood=8;
          while(aote.blood>0&&mons.blood>0){
               aote.PK(mons);
		mons.PK(aote);               
          }
          if(aote.blood==0)
             System.out.println(mons.name+"胜利!");
      
          else
             System.out.println(aote.name+"胜利!");
	}
}

 


 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值