Java知多少(18)类的定义及其实例化

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

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

对示例的说明:

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

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

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

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

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

运行结果:

感谢主人领养了我说明:

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

对象是类的一个实例,创建对象的过程也叫类的实例化。对象是以类为模板来创建的。在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     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  15     void hungry(){16         System.out.println("主人,我饿了");17     }18    19     public static void main(String arg[]){20         Dog myDog = new Dog("花花", 3);21         // 访问成员变量22         String name = myDog.name;23         int age = myDog.age;24         System.out.println("我是一只小狗,我名字叫" + name + ",我" + age + "岁了");25         // 访问方法26         myDog.bark();27         myDog.hungry();28     }29 }

运行结果:

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

系列文章:

Java知多少(1)语言概述

Java知多少(2)虚拟机(JVM)以及跨平台原理

Java知多少(3) 就业方向

Java知多少(4)J2SE、J2EE、J2ME的区别

Java知多少(5) Java开发环境的搭建

Java知多少(6)第一个程序示例

Java知多少(7)类与对象

Java知多少(8)类库及其组织结构

Java知多少(9) import及Java类的搜索路径

Java知多少(10)数据类型及变量

Java知多少(11)数据类型转换

Java知多少(12)运算符

Java知多少(13)流程控制

Java知多少(14)数组

Java知多少(15)字符串

Java知多少(16)StringBuffer与StringBuider

Java知多少(17)强调一下编程风格

Java知多少(18)类的定义及其实例化

今日的执着,会造成明日的后悔。

Java知多少(18)类的定义及其实例化

相关文章:

你感兴趣的文章:

标签云: