类的定义和使用、类的实例化、类的成员
Java编程语言是典型的面向对象的计算机编程语言,处理的最小的完整单元为对象。而现实生活中具有共同特性的对象的抽象就称之为类。类由类声明和类体构成,类体又由变量和方法构成。
类的概念
Java中的类就是具备某些共同特征的实体的集合,它是一种抽象的数据类型,它是对所具有相同特征实体的抽象。在面向对象的程序设计语言中,类是对一类“事物”的属性与行为的抽象。
**类主要是用来对一个实体(对象)来进行描述的。**主要描述该实体(对象)具有哪些属性(外观、尺寸等),哪些功能(有哪些作用),描述完成后告诉计算机。
例如:我们定义一个小狗类时:
小狗类:
属性:名字、年龄、性别、颜色、体重……
功能:bark、run、eat……
从上面的例子可以看出:类是定义对象的模板(蓝图)
Java中类的作用:
1, 类是用来组织方法的组织单位
2, 类实用来生成对象的一个图纸,构造出来对象
类的定义
在Java中定义类时需要用到class
关键字,具体语法如下:
//创建类
class ClassName {//这里没有小括号
field;//成员属性
method;//成员方法
}
class
为定义类的关键字,ClassName为类的名字,{}
中为类的主体 定义类时这三个必不可少。
类的名字命名时遵循大驼峰命名法,即每个单词的首字母都必须大写。
类中包含的内容称为类的成员。
变量信息主要是对类进行描述的,称为类的成员属性或者类的成员变量。
方法主要说明类具有哪些功能,称之为类的成员方法。
举例:
public class Dog {
String name;//成员属性
int age;
String gender;
public void bark() {//成员方法
System.out.println("小狗可以狗吠");
}
public void run() {
System.out.println("小狗可以跑");
}
}
类的定义时注意:
一个Java文件中可以有许多个类(class
),但是只能定义一个public
类(public class
);并且public
类的类名必须和文件名相等,其他类的名字不能相互重复。
类的实例化
定义了一个类,就相当于在计算机中定义了一种新的类型,与int,double类似,只不过基本数据类型是Java语言自带的内置类型,而类是用户自定义的一个新的类型,比如上面的Dog类。有了这些自定义的类之后,就可以使用这些类来定义实例(获知成为对象)。
用类类型创建对象的过程,称为类的实例化。在Java中用new
关键字,配合类名来实例化对象。
类的实例化语法
类名称 实例化对象名称 = new 类名称();
例如:
Dog dog = new Dog();
1, 类只是一个模型,限定了类有哪些成员。
2, 一个类可以实例化出很多个对象,实例化出的对象占用实际的物理空间,存储类成员变量。
public class Dog {
String name;//成员属性
int age;
String gender;
public void bark() {//成员方法
System.out.println("小狗可以狗吠");
}
public void run() {
System.out.println("小狗可以跑");
}
}
public class Test30 {
public static void main(String[] args) {
Dog dog = new Dog();//通过new实例化对象
dog.name = "小花";//初始化dog对象的name成员属性
System.out.println("小狗的名字是:"+dog.name);
dog.bark();//成员方法调用需要通过对象的引用调用
}
}
输出结果为:
小狗的名字是:小花
小狗可以狗吠
实例化对象方法
实例化对象的方法一共有三种。
第一类有两种:
1,定义类时,对成员属性初始化。(定义时初始化)
2,通过构造代码块初始化。(construct block)
第二类有一种:
3,通过构造方法初始化。
代码说明:
public class Teacher {
//定义时初始化
public String name = "张";
public int age = 21;
//通过构造代码块初始化
{
name = "李";
age = 22;
}
//通过构造方法初始化
public Teacher() {
name = "王";
age = 23;
}
}
其中值得注意的是它们三个的执行顺序:
定义时初始化和构造代码块初始化是 按出现的顺序 依次执行;无论构造方法写在哪里,构造方法初始化都是最后执行。
实例化对象步骤
①:new
操作,在内存中根据类的信息计算出一个对象需要多少内存,并且申请内存,将申请下来的类存数据全部初始化为0x0(这也解释了为什么属性的默认值都是0的变形)。
②:执行类中关于对象的属性的初始化操作——包括但不限于构造方法。这一步执行完后对象时一个完整的情况了。
③:让实例对象的引用指向刚才实例化出的对象。这一步完成后程序员就可以正常使用这个对象了。
当产生对象后,若要访问对象的属性、方法使用 “对象.
属性” 访问。
类的成员
类的成员可以包含以下:属性、方法、代码块、内部类和接口等
重点介绍前两个。
属性
在类中,但是在方法外面定义的变量,这样的变量我们称为“属性”或“字段”或“成员变量”(三种称呼都可以)。
属性用于描述一个类中包含哪些数据。普通属性是保存在对象中的,每有一个对象,就有一份属性的值。
public class Dog {
String name;//属性
int age;
}
public class Test {
public static void main(String[] args) {
Dog dog = new Dog();
System.out.println(dog.name);
System.out.println(dog.age);
}
}
输出:
null
0
注意:
使用.
访问对象的属性。
“访问”既包含读,也包含写。
对于一个对象的属性如果没有显示设置初始值,那么huibeishezhi一个默认的初值。
默认值规则:
对于各种数字类型,默认为0;
对于boolean类型,默认为false;
对于引用类型(String、 Array、 以及自定制的类),默认为null。
类中的属性的初始化有三种;1,在类的定义时初始化;2,在实例化对象后,用对象访问对象的属性;3,在类中,使用构造方法初始化属性。
方法
方法用于描述一个对象的行为。
实例方法的行为和具体的对象相关联。
所有的方法中都隐含着一个指向当前对象的引用——this。
public class Dog {
String name;//成员属性
int age;
public void show() {
System.out.println("我的名字是" + name + ", 我今年" + age + "岁了。");
}
}
public class Test {
public static void main(String[] args) {
Dog dog = new Dog();
dog.name = "小花";
dog.age = 5;
System.out.println(dog.name);
System.out.println(dog.age);
dog.show();
}
}
输出:
小花
5
我的名字是小花, 我今年5岁了。
这里的show
方法,表示dog这个对象具有一个“展示自我”的能力。
这样的show
方法是和dog对象实例相关联的。如果创建了其它实例,那么show
的行为就会随之发生变化。