Java 类与对象详细

 更新时间:2021年10月12日 09:28:53   作者:欧栋  
这篇文章主要介绍了Java 类与对象,在Java中,我们把对象的特征称为属性,对象的用途称为方法,具有相同属性和方法的对象,我们把他们归为一类,简称类。下面文章讲详细介绍什么是Java类与对象,需要的朋友可以参考一下

前言:

早期的Java语言,是面对过程的语言(面向过程指把一个场景分割成一个个的步骤研究),如今的Java已经是面对对象的语言(面向对象指把一个场景分割成一个个的对象研究)。面向对象是相比面向过程有很多便利的地方,以后读者会慢慢感受到~

那么,何谓对象呢?小编正在使用的电脑是一个对象,读者手中的手机是一个对象……对象,指【一个】【具体的】物品或者事物(注意对象可以是抽象的东西)。

每个对象都有其特征和用途,不同类型的对象特征和用途有所不同。我们把具有相同特征和用途的对象归为一类,这就是类。

比如读者的手机,其特征有颜色 重量 价格 内存大小等,用途有上网 打电话 发短信等;小编的电脑,其特征有颜色 重量 内存大小 CPU型号等,用途有上网 打游戏 办公等。之所以说手机和电脑不是同一类产品是因为手机和电脑的特征和用途有所不同。

1.类

Java中,类定义的一般格式为:

public class 类名{
    访问权限修饰符 数据类型 属性名;
    访问权限修饰符 返回值类型 方法名(参数类型  参数名,参数类型  参数名……){方法体}
    ……
}

类中属性的定义格式为:

访问权限修饰符 数据类型 属性名;

类中方法的定义格式为:

 访问权限修饰符 返回值类型 方法名(参数类型  参数名,参数类型  参数名……){方法体}

类的定义中有以下补充:

  • 1.类名第一个的字母必须大写;
  • 2.访问权限修饰符有四种:public、默认的、protectedprivate;一般用public较多;
  • 3.返回值的类型有很多种,比如int型,double型,String型,返回值分别为整数、小数、字符串

实例:定义一个学生(Student)类

public class Student {
 
 //姓名属性
 public String name;

 //学分属性
 public int score;
 
 //学习方法    方法没有返回值   没有参数
 public void study(){
        //输出一句话:谁正在学习Java!
        system.out.println("name + "正在学习Java!"")
        }
}

在一个程序中,可以用//后面加文字的方式来对代码进行注释。

2.对象

定义完类后,我们可以来创建该类的对象。创建对象(也称实例化对象)的一般格式为:

类名 对象名 = new 类名();

在实例化对象后,就可以对对象的属性进行赋值,在后面的实例中可以看到。

对象的属性和方法已经在对象所在的类中定义好了,那么对象如何调用(使用)这些属性和方法呢?调用对象的属性和方法时,用的是英文输入法中的 "."

调用对象的格式为:

对象名.属性名;

调用方法的格式为:

对象名.方法名(参数值,参数值…………);

实例:实例化对象并给对象赋值,调用对象的属性和方法。

public class Manager {
 
 public static void main(String[] args){
  //创建一个学生对象
  Student stu = new Student();
  //初始化学生对象的属性
  stu.name = "欧栋";
  stu.score = 58;
                //调用对象的方法
                stu.study();
}

程序最后输出:

欧栋正在学习Java!

3.练习

了解了类与对象后,让我们来做一些简单的练习!

  • 练习1:学生欧栋在学习java课程,每一次学习让课程的课时减少1,课时减少为0,学习完成,欧栋获得java课程的学分。
  • 练习2:劫 英雄在攻击 菊花怪,每次攻击让菊花怪的血量减少劫的攻击力的值,直到菊花怪的血量为0结束。(指定劫的和菊花怪的血量都为100,劫的攻击力为9)
  • 练习3:劫英雄与敌人菊花怪PK,劫攻击菊花怪一次使菊花怪血量减少劫的攻击力的值,菊花怪攻击劫一次使劫的血量减少菊花怪的攻击力的值,直到一方的血量<=0,PK结束。(指定劫的和菊花怪的血量都为100,劫的攻击力为9,菊花怪的攻击力为8)

练习3思路分析:

对象:劫 菊花怪
对象属性和方法
劫:属性:名字  攻击力 血量
方法:攻击菊花怪
菊花怪:属性:名字  攻击力 血量
方法:攻击劫

练习2思路分析:

 对象:劫,菊花怪
  劫:属性:名字,攻击力    
        方法:攻击菊花怪
    菊花怪:属性:名字,血量
            方法:\

练习1思路分析:

对象:学生 课程
学生属性:姓名,学分
学生方法:学习
课程属性:名称,学分,课时
方法:无

4.练习答案

练习1答案:

//定义学生类
public class Student{
 //姓名属性
 public String name;
 //学分属性
 public int score;

 //学习的方法
 public void study( Course c ){
  //让课程的课时减少1
  c.hours = c.hours -1;
  //输出   谁在学习什么课程,还剩多少个课时
  System.out.println(name + "在学习"+ c.name +"课程,还剩" + c.hours + "个课时");  

  //判断课程的课时是否为0
  if( c.hours == 0){
   //学习完成,自己的学分增加课程的学分
   score = score + c.score;
   //输出  谁完成了什么课程的学习,获得多少个学分,现在的学分是多少
   System.out.println(name + "完成了"+ c.name + "课程的学习,获得"+ c.score +"个学分,现在的学分是"+score  ); 
  }

 }


}
//定义课程类
public class Course{

 //课程名属性
 public String name;
 //学分属性
 public int score;
 //学时属性
 public int hours;

}
//定义一个只有主方法的类
public class Manager{
 //主方法
 public static void main(String[] args){
  //创建课程对象
  Course java = new Course();  
  //给课程对象的属性赋值
  java.name = "Java";
  java.hours = 20;
  java.score = 3;
  
  //创建学生对象
  Student oudong = new Student();
  //给学生对象的属性赋值
  oudong.name="欧栋";
  oudong.score = 27;

  //学习java课程
  while(java.hours > 0 ){
   oudong.study(java);
  }
 }


}

到此这篇关于Java 类与对象详细的文章就介绍到这了,更多相关Java 类与对象内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 深入理解JDK8中Stream使用

    深入理解JDK8中Stream使用

    Stream 是 Java8 中处理集合的关键抽象概念,它可以指定你希望对集合进行的操作,可以执行非常复杂的查找、过滤和映射数据等操作。这篇文章主要介绍了JDK8中Stream使用解析,需要的朋友可以参考下
    2021-06-06
  • 一篇带你入门Java垃圾回收器

    一篇带你入门Java垃圾回收器

    垃圾收集器是垃圾回收算法(标记-清除算法、复制算法、标记-整理算法、火车算法)的具体实现,不同商家、不同版本的JVM所提供的垃圾收集器可能会有很在差别
    2021-06-06
  • 深入了解Java中的过滤器Filter和监听器Listener

    深入了解Java中的过滤器Filter和监听器Listener

    这篇文章主要为大家详细介绍了Java中的过滤器Filter和监听器Listener的使用以及二者的区别,文中的示例代码讲解详细,需要的可以参考一下
    2022-06-06
  • SpringBoot异常处理之异常显示的页面问题

    SpringBoot异常处理之异常显示的页面问题

    这篇文章主要介绍了SpringBoot异常处理异常显示的页面的问题,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-09-09
  • java 实现反射 json动态转实体类--fastjson

    java 实现反射 json动态转实体类--fastjson

    这篇文章主要介绍了java 实现反射 json动态转实体类--fastjson,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-02-02
  • Java面向对象基础教学(二)

    Java面向对象基础教学(二)

    这篇文章主要介绍了Java的面相对象编程思想,包括类对象方法和封装继承多态等各个方面的OOP基本要素,非常推荐,需要的朋友可以参考下,希望可以对你有所帮助
    2021-07-07
  • 在springboot中如何集成clickhouse进行读写操作

    在springboot中如何集成clickhouse进行读写操作

    本文介绍了在Spring Boot中集成ClickHouse的步骤,包括引入依赖、配置数据源、编写实体类和Mapper类进行CRUD操作,特别提到批量插入时需要在SQL语句中添加`FORMAT`以避免错误,在实际应用中,与MySQL的操作类似,只需将ClickHouse当作MySQL使用
    2024-11-11
  • springboot中使用ElasticSearch的详细教程

    springboot中使用ElasticSearch的详细教程

    这篇文章主要介绍了ElasticSearch在springboot中使用的详细教程,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-05-05
  • Java Listener监听器使用规范详细介绍

    Java Listener监听器使用规范详细介绍

    监听器是一个专门用于对其他对象身上发生的事件或状态改变进行监听和相应处理的对象,当被监视的对象发生情况时,立即采取相应的行动。监听器其实就是一个实现特定接口的普通java程序,这个程序专门用于监听另一个java对象的方法调用或属性改变
    2023-01-01
  • Java 守护线程_动力节点Java学院整理

    Java 守护线程_动力节点Java学院整理

    Java语言机制是构建在JVM的基础之上的,意思是Java平台把操作系统的底层给屏蔽起来,所以它可以在它自己的虚拟的平台里面构造出对自己有利的机制,而语言或者说平台的设计者多多少少是收到Unix思想的影响,而守护线程机制又是对JVM这样的平台凑合,于是守护线程应运而生
    2017-05-05

最新评论