> 文档中心 > 【java】今天你有 new “对象”吗

【java】今天你有 new “对象”吗

目录

前言

一、类和对象的概念

1、从生活逻辑的角度

2、从编程语言的角度

二、类与对象的定义和和简单使用

类的定义

 对象的实例化


前言

大家好呀,我是小🐟儿哈,很抱歉断更了一个多星期,上篇说的要更新C++array也一直没更新,为什么呢?因为上周我确定了自己的方向:java,所以我上周一直在疯狂学习java,也没能及时更新博客,但没关系,我这周又回来了,我来更新我的java学习笔记了

 

一、类和对象的概念

和我们之前学的面向过程的C语言不同,java是一种面向对象的高级程序语言?那么什么是对象呢?此对象非彼对象,这里对象就是真实世界中的实体,对象与实体是一一对应的,也就是说现实世界中每一个实体都是一个对象,它是一种具体的概念。对象有以下特点

  • 对象具有属性和行为。
  • 对象具有变化的状态。
  • 对象具有唯一性。
  • 对象都是某个类别的实例。
  •  一切皆为对象,真实世界中的所有事物都可以视为对象。

想要理解对象就绕不开类这个概念,实质上可以将类看作对象的抽象,它定义了对象所具有的属性(成员变量)和方法(函数)

 

当然看了这些抽象的概念,你可能对类和对象还不是太清楚😂,没关系我们接下来从不同的角度阐述什么是类什么是对象😎

1、从生活逻辑的角度

人这个生物可以看作是一个类,人有名字、性别、年龄,这可以看作是类的属性(成员变量,人要吃饭、休息、学习、工作,这可以看作类的行为(方法或函数)但这些属性和行为无疑是抽象的,因为你不可能给一个人类大群体都起一个具体的名字,比如都叫张三,那全世界就有70多亿个张三了,可能吗?

所以我们提到的人的名字、年龄和他们的吃饭工作的行为都是都是一个抽象的概念,是不具体的。

 

而每个人都是一个独立的个体,每个人都有他自己的名字等具体的属性,每个人都有他自己要干的事(行为或称方法),这些针对每个人的属性(成员变量)、行为(方法)无疑都是具体的,比如:李四、性别男、今年19岁、正在去餐厅吃晚饭。

人这个生物群体就是一个类,而具体的每个人:小王、小红、小强就人这个类所对应的一个个实例化的对象,如下图所示:

对象
正在清洁的环卫工人小刘
教室里的学生张丽
汽车 一辆黄色的宝马跑车
一辆白色的林肯轿车
动物 一只叫“猫咪”的小花猫
一只叫“欢欢”的贵宾犬

2、从编程语言的角度

  • 类可以看作是自定义的数据类型
  • 对象可以看作是类所对应的数据类型的变量

 

二、类与对象的定义和和简单使用

类的定义

在Java中定义类,使用关键字class完成。语法如下:

class 类名称 {
         属性 (变量) ;
         行为 (方法) ;
}

比如定义一个学生类 

class Student {    String name;   //学生类的属性    int age;    public void eat() { System.out.println(name + "在吃饭");   // 学生类的行为(方法)    }}

 那么类定义好了,我们该怎样使用类呢,能直接用吗?当然不行了,我们前面也说了类只是一个抽象的概念,要想使用类中的属性和方法,还要有该类所对应的实例化对象才行😅。

 对象的实例化

那么由于类属于引用数据类型,所以对象的产生格式(两种格式)如下:

1)格式一:声明并实例化对象

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

 

(2)格式二:先声明对象,然后实例化对象:

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

引用数据类型与基本数据类型最大的不同在于:引用数据类型需要内存的分配和使用。所以,关键字new的主要功能就是分配内存空间,也就是说,只要使用引用数据类型,就要使用关键字new来分配内存空间。

当一个实例化对象产生之后,可以按照如下的方式进行类的操作:

  • 对象.属性:表示调用类之中的属性;
  • 对象.方法():表示调用类之中的方法;

比如调用我们刚才创建的学生类: 

class Student {    String name;   //学生类的属性    int age;    public void eat() { System.out.println(name + "在吃饭");   // 学生类的行为(方法)    }}public class TestDemo3 {    public static void main(String[] args) { // 对象创建好后,该对象有类中全部的属性和(行为)方法 Student student1 = new Student();    // 通过new关键字创建了一个对象student1 student1.name = "张三"; // 给学生对象student1的姓名属性赋值 student1.eat(); // 调用学生对象的方法(行为) Student student2 = null;  // 第二种定义方法 student2 = new Student(); student2.name = "小鱼儿"; // 给学生对象student2的姓名属性赋值 student2.eat();    }}

代码输出

 

可以看出这两种定义方式都是可以的,  我们在main方法中成功new(创建)了两个学生对象, 并通过"对象名.属性" 成功给他们赋了值,  通过"对象名.方法"成功的输出了类的行为:eat.

看到这, 你是不是觉得类和对象好像没什么难的?还挺简单的呀! 不不不, 现在我们只是刚刚知道了类和对象的基本概念和基本用法

 还有很多用法我们还没提到, 不过不要着急, 让我们接下来一点点揭开类和对象他神秘的面纱,

我们下篇见