服务器之家:专注于服务器技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - Java教程 - Java 类与对象详细

Java 类与对象详细

2022-02-15 16:13欧栋 Java教程

这篇文章主要介绍了Java 类与对象,在Java中,我们把对象的特征称为属性,对象的用途称为方法,具有相同属性和方法的对象,我们把他们归为一类,简称类。下面文章讲详细介绍什么是Java类与对象,需要的朋友可以参考一下

前言:

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

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

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

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

1.类

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

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

类中属性的定义格式为:

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

类中方法的定义格式为:

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

类的定义中有以下补充:

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

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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
public class Student {
 
 //姓名属性
 public String name;
 
 //学分属性
 public int score;
 
 //学习方法    方法没有返回值   没有参数
 public void study(){
        //输出一句话:谁正在学习Java!
        system.out.println("name + "正在学习Java!"")
        }
}

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

2.对象

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

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

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

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

调用对象的格式为:

对象名.属性名;

调用方法的格式为:

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

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

?
1
2
3
4
5
6
7
8
9
10
11
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答案:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
//定义学生类
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  );
  }
 
 }
 
 
}
?
1
2
3
4
5
6
7
8
9
10
11
//定义课程类
public class Course{
 
 //课程名属性
 public String name;
 //学分属性
 public int score;
 //学时属性
 public int hours;
 
}
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
//定义一个只有主方法的类
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 类与对象详细的文章就介绍到这了,更多相关Java 类与对象内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://zhuanlan.zhihu.com/p/27738373

延伸 · 阅读

精彩推荐
  • Java教程springboot+mybatis配置控制台打印sql日志的方法

    springboot+mybatis配置控制台打印sql日志的方法

    这篇文章主要介绍了springboot+mybatis配置控制台打印sql日志的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需...

    Alice_qixin8512020-08-26
  • Java教程JAVA超级简单的爬虫实例讲解

    JAVA超级简单的爬虫实例讲解

    下面小编就为大家带来一篇JAVA超级简单的爬虫实例讲解。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧...

    C_凯4612021-01-27
  • Java教程Java 多线程之两步掌握

    Java 多线程之两步掌握

    Java 多线程编程 Java给多线程编程提供了内置的支持。一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的...

    爱敲代码的小高9772022-02-10
  • Java教程Java实现指定线程执行顺序的三种方式示例

    Java实现指定线程执行顺序的三种方式示例

    这篇文章主要介绍了Java实现指定线程执行顺序的三种方式,包括通过共享对象锁加上可见变量,通过主线程Join()以及通过线程执行时Join()等三种实现方法,需要...

    Leon-Zheng4932021-07-10
  • Java教程Java中的四种单例模式浅析

    Java中的四种单例模式浅析

    这篇文章主要给大家介绍了关于Java中四种单例模式的相关资料,其中包括饿汉式、懒汉式、懒汉式(双重锁)及内部类等四种,分别给出了详细的示例代码和...

    5082020-09-29
  • Java教程dubbo 如何使用logback来输出日志

    dubbo 如何使用logback来输出日志

    这篇文章主要介绍了dubbo 如何使用logback来输出日志的操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...

    PolarisHuster7932021-10-22
  • Java教程Java 8新特性方法引用详细介绍

    Java 8新特性方法引用详细介绍

    这篇文章主要介绍了Java 8新特性方法引用详细介绍的相关资料,这里对新特性 方法引用做的资料整理,具有参考价值,需要的朋友可以参考下...

    MPPC5412020-07-09
  • Java教程详解Java并发包基石AQS

    详解Java并发包基石AQS

    Java并发包(JUC)中提供了很多并发工具,这其中,很多我们耳熟能详的并发工具,譬如ReentrangLock、Semaphore,它们的实现都用到了一个共同的基类--Abstract...

    dreamcatcher-cx4452022-01-06