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 是类的成员变量,也叫属性;bark()、hungry() 是类中的函数,也叫方法。

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

  • 局部变量:在方法或者语句块中定义的变量被称为局部变量。变量声明和初始化都是在方法中,方法结束后,变量就会自动销毁。
  • 成员变量:成员变量是定义在类中、方法体之外的变量。这种变量在创建对象的时候实例化(分配内存)。成员变量可以被类中的方法和特定类的语句访问。
  • 类变量:类变量也声明在类中,方法体之外,但必须声明为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)类的定义及其实例化

时间: 2024-11-24 16:13:57

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

Java知多少(36)内部类及其实例化

在 Java 中,允许在一个类(或方法.语句块)的内部定义另一个类,称为内部类(Inner Class),有时也称为嵌套类(Nested Class). 内部类和外层封装它的类之间存在逻辑上的所属关系,一般只用在定义它的类或语句块之内,实现一些没有通用意义的功能逻辑,在外部引用它时必须给出完整的名称. 使用内部类的主要原因有: 内部类可以访问外部类中的数据,包括私有的数据. 内部类可以对同一个包中的其他类隐藏起来. 当想要定义一个回调函数且不想编写大量代码时,使用匿名(anonymous)内部类

面向对象-类的定义和实例化

面向对象是一种认识世界,分析世界的方法论,将万事万物抽象为类 类class 类是抽象的概念,是万事万物的抽象,是一类事物的共同特征集合 用计算机语言来描述类,就是属性和方法的集合 对象instance,object 对象是类的具象,是一个实体 一切皆对象 对象是数据和操作的封装 对象是独立的,但是对象之间可以相互作用 面向对象三要素 1.封装 组装,将数据和操作组装到一起 隐藏数据,对外只暴露一些接口,通过接口访问对象 2.继承 多复用,继承来的就不用自己写 多继承少修改,ocp使用继承来改变,

Java类的定义及其实例化

如果你不了解类和对象的概念,请猛击这里:Java类和对象的概念 类必须先定义才能使用.类是创建对象的模板,创建对象也叫类的实例化. 下面通过一个简单的例子来理解Java中类的定义: public class Dog{ String name; int age; void bark(){  // 汪汪叫 System.out.println("汪汪,不要过来"); } void hungry(){  // 饥饿 System.out.println("主人,我饿了")

java新手笔记18 类比较

1.Shap类 package com.yfs.javase; public class Shape /*extends Object */{ //默认继承object object方法全部继承 //计算面积方法 public double getArea() { System.out.println("计算面积"); return 0; } } 2.Circle类 package com.yfs.javase; public class Circle extends Shape {

1.Java类的定义及其实例化

类必须先定义才能使用.类是创建对象的模板,创建对象也叫类的实例化. 下面通过一个简单的例子来理解Java中类的定义: public class Dog{ String name; int age; void bark(){  // 汪汪叫 System.out.println("汪汪,不要过来"); } void hungry(){  // 饥饿 System.out.println("主人,我饿了"); } } 对示例的说明: public 是类的修饰符,表明该类

C++ template学习二 类模板定义及实例化

一个类模板(也称为类属类或类生成类)允许用户为类定义一种模式,使得类中的某些数据成员.默写成员函数的参数.某些成员函数的返回值,能够取任意类型(包括系统预定义的和用户自定义的). 如果一个类中数据成员的数据类型不能确定,或者是某个成员函数的参数或返回值的类型不能确定,就必须将此类声明为模板,它的存在不是代表一个具体的.实际的类,而是代表着一类类. //templatedemo.h#ifndef TEMPLATE_DEMO_HXX#define TEMPLATE_DEMO_HXX template

一个简单的c++类的定义和实例化

#include "iostream" #include <string> using namespace std; class mycoach { private: string name; short age = 0; public: void coachgreeting(string _name, int _age) { name = _name; age = _age; cout << "大家好,我是" << name &

Java知多少(23)类的基本运行顺序

我们以下面的类来说明一个基本的 Java 类的运行顺序: 1 public class Demo{ 2 private String name; 3 private int age; 4 public Demo(){ 5 name = "微学苑"; 6 age = 3; 7 } 8 public static void main(String[] args){ 9 Demo obj = new Demo(); 10 System.out.println(obj.name + "

Java知多少(35)Object类

Object 类位于 java.lang 包中,是所有 Java 类的祖先,Java 中的每个类都由它扩展而来. 定义Java类时如果没有显示的指明父类,那么就默认继承了 Object 类.例如: 1 public class Demo{ 2 // ... 3 } 实际上是下面代码的简写形式: 1 public class Demo extends Object{ 2 // ... 3 } 在Java中,只有基本类型不是对象,例如数值.字符和布尔型的值都不是对象,所有的数组类型,不管是对象数组还