Java的类与对象,
Java的类与对象,
1、前言
Java支持面向对象的三大特征:封装、继承、多态,提供了private、protected、public三个访问控制修饰符,提供了extends 关键字让子类继承父类。类是描述客观世界里的某一类对象的共同特征,对象是类的具体存在,Java程序是使用类的构造器来创建类的对象。Java提供了一种静态初始化块,在类的初始化阶段被执行,如果继承树里的某一个类需要被初始化时,系统将会同时初始化该类的所有父类。
2、类的定义
Java语言定义类的简单语法:
[修饰符] class 类名
{
零个到多个构造器的定义
零个到多个成员变量
零个到多个方法
}
修饰符可以是public 、final、abstract,或者省略这三个修饰符,类名只要是一个合法的标识符即可。类包含构造器、成员变量、方法。
1)构造器
定义构造器的语法格式:
[修饰符] 构造器名(形参列表)
{
//构造器执行体
}
修饰符可以是public、protected、private其中之一,构造器名必须与类名相同,多组形参使用英文逗号隔开。(不要在构造器里显式使用return 来返回当前类的对象,因为构造器的返回值是隐式的)
2)成员变量
定义成员变量的语法格式:
[修饰符] 类型 成员变量 [= 默认值];
修饰符可以省略,也可以是public 、protected、private、static、final,其中public 、protected、private三个最多只能出现其中之一,可以与static、final组合起来修饰成员变量。成员变量名只要是一个合法的标识符就可以了。
3)方法
定义方法的语法格式:
[修饰符] 方法返回值类型 方法名(形参列表)
{
//方法体
}
修饰符可以省略,也可以是public 、protected、private、static、final、abstract,其中public 、protected、private三个最多只能出现其中之一,abstract和final最多只能出现其中之一,它们可以与static组合起来修饰方法,方法名只要是一个合法的标识符就可以了。多组形参使用英文逗号隔开。
3、对象的产生与使用
创建对象可以通过new 关键字来调用某个类的构造器来实现创建这个类的实例。如下例子所示:
public class Run
{
public String Messageshow;
public void running(String tmp)
{
System.out.println(tmp);
}
}
public class RunTest
{
Run p;
p = new Run();
p.Messageshow = "We going to there!";
p.running("I want to Running!");
}
4、对象、引用和指针
类是一种引用数据类型,类的变量实际上是一个引用,在内存中类的变量存放于栈(stack)内存中,其指向的类的对象则是存放在堆(heap)内存中。栈(stack)内存里的引用变量并未真正存储对象的成员变量,对象的成员变量数据实际存放在堆(heap)内存中,引用变量只是指向该堆(heap)内存的对象。当一个对象被创建成功后,这个对象将保存在堆内存中,Java程序不允许直接访问堆(heap)内存中的对象,只能通过该对象的引用操作该对象。
5、对象的this引用
this关键字总是指向调用该方法的对象,this作为对象的默认引用有两种情况:
(1)在构造器中引用该构造器正在初始化的对象。
(2)在方法中引用调用该方法的对象。
在Java中允许对象的一个成员直接调用另一个成员,可以省略前面的this 前缀,如下代码所示:
public class man
{
public void eating()
{
System.out.println("正在执行eating方法");
}
public void run()
{
// 使用this引用调用run()方法的对象
//this.eating();
eating();
System.out.println("正在执行run方法");
}
}
要注意的是static修饰的方法中不能使用this引用。由于static修饰的方法不能使用this引用,所以static修饰的方法不能访问不使用static修饰的普通成员。
Java编程的时候不要使用对象去调用static修饰的成员变量、方法,而是应该使用类去调用static修饰的成员变量、方法。
使用this作为方法的返回值可以让代码更加简洁,但是可能造成实际意义的模糊。
相关文章
- 暂无相关文章
用户点评