- 可把类当成一种自定义类型,可使用类来定义变量,这种类型的变量统称为引用变量,也就是说,所有类是引用类型。
语法:
[修饰符] class
{
0个到多个构造器定义……
0到多个成员变量.......
0到多个方法.......
}
- [修饰符]可为public,final,abstract,或者都不写。
- 类名必须是由一个或多个有意义的单词连缀而成,每个单词首字母大写!单词间不用任何分隔符!
- 》》构造器:用于构造该类的实例,Java语言通过用new关键字来调用构造器,从而返回该类的实例。构造器是一个类创建对象的根本途径,if没有,则这个类不能创建实例! if没有编写构造器,系统会有一个默认的构造器。(和C++构造函数可以pk pk.)
定义成员变量的语法格式:
[修饰符] 类型 成员变量名 [=默认值];
- [修饰符]可以省略,也可以是public,protected,private,static,final.其中,前三个最多只能出现一次,可以与后面两个组合起来修饰成员变量。
定义方法的语法格式:
[修饰符] 方法返回值类型 方法名(形参列表)
{
//有0个到多条可执行性语句组成的方法体
}
- 返回值类型:没有返回值用:void来声明;有的话必须有一个有效的return语句!
- 谁调用方法,谁负责为形参赋值!
- static 是一个特殊的关键字,它可用于修饰方法、成员变量等成员。static 修饰的成员表明它属于这个类本身,而不属于该类的单个实例,因为通常把 static 修饰的成员变量和方法也称为类变量、类方法。不使用static 修饰的普通方法、成员变量则属于该类的单个实例,而不属于该类。因为通常把不使用 static修饰的成员变量和方法也称为实例变量、实例方法。
由于 static 的英文直译就是静态的意思,因此有时也把 static 修饰的成员变量和方法称为静态变量和静态方法,把不使用 static 修饰的成员变量和方法称为非静态变量和非静态方法。静态成员不能直接访问非静态成员。
构造器是一个特殊的方法 ,语法为:
[修饰符] 构造器名 (形参列表)
{
//由0到多条课执行性语句组成的构造器执行体
}
>>修饰符:可为public、protected、private其中之一.
>>构造器名与类名相同.
- 值得指出的是,构造器既不能定义返回值类型,也不能使用 void 声明构造器没有返回值。如果为构造器定义了返回值类型,或使用 void 声明构造器没有返回值,编译时不会出错,但 Java 会把这个所谓的构造器当成方法来处理——它就不再是构造器。
定义一个类:
public class Person
{
//定义两个成员变量
public String name;
public int age;
//定义了一个say方法
public void say(String content)
{
System.out.println(content);
}
}
对象的产生和使用:上述代码没有定义构造器,系统默认一个。
-
创建 对象的根本途径是构造器,通过new关键字来调用某个类的构造器即可创建这个类的实例。
//使用Person类定义一个Person类型的变量 Person P; //通过new关键字调用Person 类的构造器,返回一个Person实例 //将该Person实例赋给P变量 P=new Person();
- 也可简化为:
-
//定义P变量的同时并为P变量赋值 Person P=new Person();
- 创建对象后,可>>访问对象的实例变量;
>>调用对象的方法。
对象、引用和指针:- 类也是一种引用,因此定义Person类型的变量实际就是一个引用,它被存放在栈内存里,指向实际的Person对象;而真正的Person对象则存放在堆内存里。
- 栈内存里的引用变量并未真正存储对象的成员变量,对象的成员变量数据实际存放在堆内存里;而引用变量只是指向该堆内存里的对象。从这个角度来看,引用变量与 C语言里的指针很像,它们都是存储一个地针,通过这个地址来引用到实际对象。实际上,Java 里的引用就是 C 里的指针,只是 Java 语言把这个指针封装起来,避免开发者进行烦琐的指针操作。
- this关键字总是指向调用该方法的对象。



