Java类的定义及其实例化

createh53周前 (12-10)技术教程19

类必须先定义才能使用。类是创建对象的模板,创建对象也叫类的实例化。
下面通过一个简单的例子来理解Java中类的定义:

对示例的说明:

  • public 是类的修饰符,表明该类是公共类,可以被其他类访问。修饰符将在下节讲解。
  • class 是定义类的关键字。
  • Dog 是类名称。
  • name、age 是类的成员变量,也叫属性;bark()、hungry() 是类中的函数,也叫方法。


一个类可以包含以下类型变量:

  • 局部变量:在方法或者语句块中定义的变量被称为局部变量。变量声明和初始化都是在方法中,方法结束后,变量就会自动销毁。
  • 成员变量:成员变量是定义在类中、方法体之外的变量。这种变量在创建对象的时候实例化(分配内存)。成员变量可以被类中的方法和特定类的语句访问。
  • 类变量:类变量也声明在类中,方法体之外,但必须声明为static类型。static 也是修饰符的一种,将在下节讲解。
  • 构造方法

    在类实例化的过程中自动执行的方法叫做构造方法,它不需要你手动调用。构造方法可以在类实例化的过程中做一些初始化的工作。
    构造方法的名称必须与类的名称相同,并且没有返回值。
    每个类都有构造方法。如果没有显式地为类定义构造方法,Java编译器将会为该类提供一个默认的构造方法。
    下面是一个构造方法示例:

    运行结果:
    感谢主人领养了我
    说明:

    • 构造方法不能被显示调用。
    • 构造方法不能有返回值,因为没有变量来接收返回值。

    创建对象

    对象是类的一个实例,创建对象的过程也叫类的实例化。对象是以类为模板来创建的。
    在Java中,使用new关键字来创建对象,一般有以下三个步骤:

    • 声明:声明一个对象,包括对象名称和对象类型。
    • 实例化:使用关键字new来创建一个对象。
    • 初始化:使用new创建对象时,会调用构造方法初始化对象。


    例如:

    也可以在声明的同时进行初始化:

    访问成员变量和方法

    通过已创建的对象来访问成员变量和成员方法,例如:

    下面的例子演示了如何访问成员变量和方法:

    运行结果:
    感谢主人领养了我
    我是一只小狗,我名字叫花花,我3岁了
    汪汪,不要过来
    主人,我饿了

    小编是一个有着5年工作经验的程序员,关于Java,自己有做材料的整合,一个完整学习Java的路线,学习材料和工具。需要的伙伴可以私信我,发送“交流”后就可免费获取。对于学习Java有任何问题(学习方法,学习效率,如何就业)都可以问我。希望你也能凭自己的努力,成为下一个优秀的程序员!

    相关文章

    初学者关于JAVA语言中的类的理解

    最近对编程挺有兴趣,于是开始了JAVA的学习,身为一个初学者,在学习的过程中,有一些理解,特发表记录。本人编程近乎零基础,若有理解不对,请批评指正。从学习的内容可知,在JAVA中,类是基础,是基本单位...

    一文讲透Java序列化

    前言 Oracle 公司计划废除 Java 中的古董:序列化技术,因为它带来了许多严重的安全问题(如序列化存储安全、反序列化安全、传输安全等),据统计,至少有3分之1的漏洞是序列化带来的,这也是 19...

    SpringBoot使用不同的策略动态地调用某个接口的实现类

    1、前言经常遇到这样的一个需求,前端传的实体类型相同,后端需要根据实体类中的某一个字符串,动态地调用某一个类的方法。在SpringBoot中,我们可以理解成,一个Controller接口对应多个Ser...

    一文搞懂Java动态代理:为什么Mybatis Mapper不需要实现类?

    在学习Java动态代理之前,我想让大家先思考这样几个问题。JDK动态代理为什么不能对类进行代理?Mybatis Mapper接口为什么不需要实现类?如果你还不知道上述问题的答案,那么这篇文章一定能消除...

    Java 类概念简介

    Java 是一种面向对象编程语言(POO),它代表了封装、继承和多态性等概念。面向对象编程的功能是经典的,也是Java 对象创建的基础元素。在这篇文章中,我们讨论了 Java 中的类资源管理器,对创建...

    java集合类之java中集合类有哪些?如何分类?

    前言:Java的整个集合框架中,主要分为List,Set,Queue,Stack,Map等五种数据结构。其中,前四种数据结构都是单一元素的集合,而最后的Map则是以KV对的形式使用。图解集合从继承关系...