如果你不了解类和对象的概念,请猛击这里:Java类和对象的概念

类必须先定义才能使用。类是创建对象的模板,创建对象也叫类的实例化。

下面通过一个简单的例子来理解Java中类的定义:

  1. public class Dog{
  2. String name;
  3. int age;
  4. void bark(){  // 汪汪叫
  5. System.out.println("汪汪,不要过来");
  6. }
  7. void hungry(){  // 饥饿
  8. System.out.println("主人,我饿了");
  9. }
  10. }

对示例的说明:

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

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

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

构造方法

在类实例化的过程中自动执行的方法叫做构造方法,它不需要你手动调用。构造方法可以在类实例化的过程中做一些初始化的工作。

构造方法的名称必须与类的名称相同,并且没有返回值。

每个类都有构造方法。如果没有显式地为类定义构造方法,Java编译器将会为该类提供一个默认的构造方法。

下面是一个构造方法示例:

  1. public class Dog{
  2. String name;
  3. int age;
  4. // 构造方法,没有返回值
  5. Dog(String name1, int age1){
  6. name = name1;
  7. age = age1;
  8. System.out.println("感谢主人领养了我");
  9. }
  10. // 普通方法,必须有返回值
  11. void bark(){
  12. System.out.println("汪汪,不要过来");
  13. }
  14. void hungry(){
  15. System.out.println("主人,我饿了");
  16. }
  17. public static void main(String arg[]){
  18. // 创建对象时传递的参数要与构造方法参数列表对应
  19. Dog myDog = new Dog("花花", 3);
  20. }
  21. }

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

说明:

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

创建对象

对象是类的一个实例,创建对象的过程也叫类的实例化。对象是以类为模板来创建的。

在Java中,使用new关键字来创建对象,一般有以下三个步骤:

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

例如:

  1. Dog myDog; // 声明一个对象
  2. myDog = new Dog("花花", 3); // 实例化

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

  1. Dog myDog = new Dog("花花", 3);

访问成员变量和方法

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

  1. // 实例化
  2. Dog myDog = new Dog("花花", 3);
  3. // 通过点号访问成员变量
  4. myDog.name;
  5. // 通过点号访问成员方法
  6. myDog.bark();

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

  1. public class Dog{
  2. String name;
  3. int age;
  4. Dog(String name1, int age1){
  5. name = name1;
  6. age = age1;
  7. System.out.println("感谢主人领养了我");
  8. }
  9. void bark(){
  10. System.out.println("汪汪,不要过来");
  11. }
  12. void hungry(){
  13. System.out.println("主人,我饿了");
  14. }
  15. public static void main(String arg[]){
  16. Dog myDog = new Dog www.feishenbo.cn ("花花", 3);
  17. // 访问成员变量
  18. String name = myDog.name;
  19. int age = myDog.age;
  20. System.out.println("我是一只小狗,我名字叫" + name + ",我" + age + "岁了");
  21. // 访问方法
  22. myDog.bark();
  23. myDog.hungry();
  24. }
  25. }

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

Java类的定义及其实例化的更多相关文章

  1. JAVA基础知识|java虚拟机(JVM)

    一.JVM简介 java语言是跨平台的,兼容各种操作系统.实现跨平台的基石就是虚拟机(JVM),虚拟机不是跨平台的,所以不同的操作系统需要安装不同的jdk版本(jre=jvm+类库:jdk=jre+开 ...

  2. java基础知识——Java的定义,特点和技术平台

    (作者声明:对于Java编程语言,很多人只知道怎么用,却对其了解甚少.我也是其中一员.所以菜鸟的我,去查询了教科书以及大神的总结,主要参考了<Java核心技术>这本神作.现在分享给大家!) ...

  3. [java基础知识]java安装步骤

    jre:  java运行环境.  jre =  java虚拟机 + 核心类库(辅助java虚拟机运行的文件).如果只是运行java程序,只需要安装jre.    jdk: java开发工具集   jd ...

  4. java 基础知识九 类与对象

    java  基础知识九  类与对象 1.OO(Object–Oriented )面向对象,OO方法(Object-Oriented Method,面向对象方法,面向对象的方法)是一种把面向对象的思想应 ...

  5. java 基础知识(java web 方面的)

    1.java面向对象的基本特征:封装性,多态性,继承性. 2.Java的泛型:iterator接口主要有hasnext()方法,next()方法,remove()方法:collection接口继承了i ...

  6. [转] Java基础知识——Java语言基础

    http://blog.csdn.net/loneswordman/article/details/9905931 http://blog.csdn.net/wanghuan203/article/d ...

  7. java基础知识精华

    转载:https://www.jianshu.com/p/6c078abb720f java基础知识 java内存模型 java运行时数据区域 hashMap 如何解决冲突 存储方式 冲突达到一定数量 ...

  8. 第二十九节:Java基础知识-类,多态,Object,数组和字符串

    前言 Java基础知识-类,多态,Object,数组和字符串,回顾,继承,类的多态性,多态,向上转型和向下转型,Object,数组,多维数组,字符串,字符串比较. 回顾 类的定义格式: [类的修饰符] ...

  9. java基础知识回顾之---java String final类普通方法

    辞职了,最近一段时间在找工作,把在大二的时候学习java基础知识回顾下,拿出来跟大家分享,如果有问题,欢迎大家的指正. /*     * 按照面向对象的思想对字符串进行功能分类.     *      ...

  10. Java基础知识(壹)

    写在前面的话 这篇博客,是很早之前自己的学习Java基础知识的,所记录的内容,仅仅是当时学习的一个总结随笔.现在分享出来,希望能帮助大家,如有不足的,希望大家支出. 后续会继续分享基础知识手记.希望能 ...

随机推荐

  1. rest_framework_jwt

    安装配置 安装 pip install djangorestframework-jwt 配置 REST_FRAMEWORK = { 'DEFAULT_AUTHENTICATION_CLASSES': ...

  2. Error “can't use subversion command line client : svn” Probably the path to Subversion executable is wrong

    错误提示如图. 大概意思就是SVN路径不对 解决方法如下: 首先下载Subversion 1.8.13(1.8) 下载链接(https://www.visualsvn.com/downloads/) ...

  3. PHP生成随机数函数rand(min,max)

    rand(min,max):生成min到max 的随机数,注意:包括边界rand() 返回 0 到 RAND_MAX 之间的伪随机整数.例如,想要 5 到 15(包括 5 和 15)之间的随机数,用 ...

  4. 内存cgroup

    内存cgroup的值都是从哪里来的呀 page_counter_charge是增加page_counter的计数, try_charge函数和mem_cgroup_migrate函数是增加普通进程内存 ...

  5. swagger-ui enum select

    swagger-ui enum select Array[string] https://dejanstojanovic.net/aspnet/2018/march/displaying-multip ...

  6. 第十五篇:jQuery

    本篇内容 简介 使用 一. 简介 jQuery 是一个 JavaScript 库. jQuery 极大地简化了 JavaScript 编程. jQuery 很容易学习. jQuery 库可以通过一行简 ...

  7. BZOJ 1036 [ZJOI2008]树的统计Count | 树链剖分模板

    原题链接 树链剖分的模板题:在点带权树树上维护路径和,最大值和单点修改 这里给出几个定义 以任意点为根,然后记 size (u ) 为以 u 为根的子树的结点个数,令 v 为 u 所有儿子中 size ...

  8. webpack最佳入门实践系列(5)

    9.路径相关 原来我们打包的东西都存放到了dist目录下,并没有进行分类存储,乱成一团,这一节我们就要处理一下打包的路径,让打包后的目录看起来更加优雅 9.1.代码准备 我们先建立起这样一个目录结构 ...

  9. clips 前端 js 单选按钮与输入框 的配合变化

    情形1: 一对单选按钮 一个输入框组 输入框组随单选按钮的改变而替换文字或执行其它 片段属于 介绍单选框的基本使用方式  : 1.单选框是有分类的,每个单选框有自己所属的组 从而一个页面可以拥有多组单 ...

  10. 汕头市队赛 SRM 08 A

    比赛没参加 所以回来补题咯 A还是自己YY出来了的 可惜比赛没有打 描述 给一个 01 串设为其 S,询问是否存在只出现两次的 01 串 T. 这里的出现定义为存在一串下标 ,满足  且 . 输入格式 ...