Java中类的定义和初始化示例详解

类的定义

类的定义格式

//创建类
class ClassName{
	field ;//成员属性/字段
	method;//方法
}

class为定义类的关键字,ClassName为类的名字,{ }为类的主体;

例如:

class Person{
	public String name ; //成员属性
	public int age;
	public void eat(){ // 方法
		System.out.println("吃饭!");
	}
}

类的成员

类的成员包含,字段(成员变量),方法,代码块,内部类,接口…

字段/属性/成员变量

在类中,但是在方法外定义的变量,我们称为: 字段/属性/成员变量。

class Person{
	public String name ; //成员属性
	public int age;
}

我们在使用的时候,使用 . 访问对象的属性,即可以读,也可以写,对于对象中的字段,如果没有初始值,那么默认为“0”值的变形

类型 “0”值
byte/short/int 0
long 0L
float 0.0F
double 0.0
boolean false
char 0x0000对应的字符
引用类型 null

方法

用于描述对象行为

例如:

class Person{
	public String name ; //成员属性
	public int age;
	public void eat(){ // 方法
		System.out.println("吃饭!");
	}
}

类的实例化

类的实例化,当我们定义了一个类后,就相当于多了一种新的类型,和int类似,只不过是我们自己定义的类型,我们可以使用它。当用这些类来定义对象的时候,称为类的实例化。
通过 new 关键字来实例化对象。

例如:

public class Teacher {
 public String name;
 public int age;
 public void 自我介绍() {
  // 在方法中可以直接使用属性
  // name 读取该对象中,属性 name 的值
  System.out.printf("我叫 %s,我今年 %d 岁", name, age);
 }
}
public class TeacherTest {
 public static void main(String[] args) {
  // 构造对象,并且得到 a 引用,用于以后操作对象
  Teacher a = new Teacher();
  // 通过 a 引用,为对象的属性进行赋值操作
  a.name = "aa";
  a.age = 35;
  // 通过 a 引用,调用属于该对象的方法
  a.自我介绍();
  // 再来一个新的老师
  Teacher b = new Teacher();
  b.name = "bb";
  b.age = 33;
  b.自我介绍();
  Teacher c=new Teacher();
  c.name="ccc";
  c.age=18;
  c.自我介绍();
 }
}

注意:

  • new关键字用于创建一个对象实例。
  • 同一个类可以创建多个对象。

类和对象的关系,我们可以理解为,类是模板,而一个模板在在不使用的时候,就放在哪里,而当使用的时候,就可以批量的制造所需要的东西了。

我们还可以借助引用来理解:例如,上题:new一个Teacher对象,将引用a指向该对象,我们通过引用访问该对象。

类的初始化

实例成员未初始化,默认值为对应的“0”值,

在初始化的时候,定义初始化,和构造代码块初始化的等级相同,谁在前面谁先执行,

构造方法,永远在第一类(定义初始化OR构造代码块)执行之后执行,与位置无关

总结

到此这篇关于Java中类的定义和初始化的文章就介绍到这了,更多相关Java类的定义和初始化内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Java类初始化和实例化中的2个“雷区”

    在考虑类初始化时,我们都知道进行子类初始化时,如果父类没有初始化要先初始化子类.然而事情并没有一句话这么简单. 首先看看Java中初始化触发的条件: (1)在使用new实例化对象,访问静态数据和方法时,也就是遇到指令:new,getstatic/putstatic和invokestatic时: (2)使用反射对类进行调用时: (3)当初始化一个类时,父类如果没有进行初始化,先触发父类的初始化: (4)执行入口main方法所在的类: (5)JDK1.7动态语言支持中方法句柄所在的类,如果没有初始化

  • 简单了解java类的初始化以及类的实例化

    前言 上一篇我们知道了一个类的生命周期是:加载->验证->准备->解析->初始化->使用->卸载. 当初始化完成以后,一个类所有的类变量(被static修饰的变量)都被赋值.但是未被static修饰的成员变量又是何时被赋值的呢? 一个类何时会被初始化 一个类何时被初始化可以分为以下几类: 1.创建类的实例(new). 2.访问某个类或接口的静态变量,或者对该静态变量赋值. 3.调用类的静态方法. 4.通过反射方式执行以上三种行为. 5.初始化子类的时候,会触发父类的初始

  • Java类继承关系中的初始化顺序实例详解

    本文实例讲述了Java类继承关系中的初始化顺序.分享给大家供大家参考,具体如下: Java类初始化的顺序经常让人犯迷糊,现在本文尝试着从JVM的角度,对Java非继承和继承关系中类的初始化顺序进行试验,尝试给出JVM角度的解释. 非继承关系中的初始化顺序 对于非继承关系,主类InitialOrderWithoutExtend中包含了静态成员变量(类变量)SampleClass 类的一个实例,普通成员变量SampleClass 类的2个实例(在程序中的顺序不一样)以及一个静态代码块,其中静态代码块

  • 解析Java虚拟机中类的初始化及加载器的父委托机制

    类的初始化 在初始化阶段,Java虚拟机执行类的初始化语句,为类的静态变量赋予初始值. 在程序中,静态变量的初始化有两种途径: 1.在静态变量的声明处进行初始化: 2.在静态代码块中进行初始化. 没有经过显式初始化的静态变量将原有的值. 一个比较奇怪的例子: package com.mengdd.classloader; class Singleton { // private static Singleton mInstance = new Singleton();// 位置1 // 位置1输

  • java类中元素初始化顺序详解

    复制代码 代码如下: public class Test4 {    @Test    public void test(){        child child = new child();    }} class parent{    public static String parentStaticField = "父类静态变量";    public String parentNormalField ="父类普通变量";    static {      

  • Java类变量和成员变量初始化过程的应用介绍

    一.类的初始化 对于类的初始化:类的初始化一般只初始化一次,类的初始化主要是初始化静态成员变量. 类的编译决定了类的初始化过程. 编译器生成的class文件主要对定义在源文件中的类进行了如下的更改: 1)       先按照静态成员变量的定义顺序在类内部声明成员变量. 2)       再按照原java类中对成员变量的初始化顺序进行初始化. 一个java类和编译后的class对应的转换如下: 源文件: 复制代码 代码如下: public class Person{ public static S

  • java父类和子类初始化顺序的深入理解

    继承类的构建过程是向外扩散的,子类初始化了,父类一定也初始化了 复制代码 代码如下: class Art{ Art(){  System.out.println("Art"); }}class Drawing extends Art{ Drawing(){  System.out.println("Drawing"); }}public class Cartoon extends Drawing { Cartoon(){  System.out.println(&q

  • Java虚拟机装载和初始化一个class类代码解析

    在 java 应用程序开发中,只有被 java 虚拟机装载的 Class 类型才能在程序中使用.只要生成的字节码符合 java 虚拟机的指令集和文件格式,就可以在 JVM 上运行,这为 java 的跨平台性提供条件.下面,我们来看看虚拟机是如何装载和初始化一个 class 类的. 装载一个类 学习过C/C++语言的读者知道,C/C++源代码必须首先别编译成本地的机器代码,然后还需要一个链接代码过程.该链接过程的主要任务就是:合并不同的源码文件产出的中间代码,并最终获得一个可直接执行的应用程序.然

  • Java类加载初始化的过程及顺序

    Java类的加载说明 Java类的编译代码都存在于它自己的独立文件中(class),该文件只在需要使用程序代码时才会被加载. 类加载在创建类的第一个对象时发生,但当访问static域或static方法时,也会发生加载. 构造器也是static方法,尽管static关键字没有显式写出,故可进一步说,类是在任何static成员被访问时加载的. 示例说明加载过程 示例源于<Java编程思想> //父类 public class SuperClass { protected int super_a;

  • Java关于含有继承类的成员初始化过程讲解

    参考资料<Java 编程思想>,关于含有基类的导出类,其成员的初始化过程是一个容易让人困惑的地方,下面通过具体的实例进行讲解,代码取自<Java 编程思想>,代码如下: import static net.mindview.util.Print.*; /** * All rights Reserved, Designed By www.tydic.com * * @project: MyExerciseProject * @Title: Beetle.java * @Package

随机推荐