五、java的面向对象程序设计(类和对象)
/**
* 面向对象之一
* 类与对象
*/
/**
* 对象的实例化过程:
* 1,java中所有类型在内存的分配情况
* a,基本类型"变量"char,byte,short,int,long,float,double,boolean存储在堆栈中
* 堆栈是通过堆栈指针按照先进先出的读取方式存储数据,存取速度快.
* 堆栈位于RAM(随机访问存储器,可读可写)
* b,"常量"(主要指通过final static关键字定义的常量)存储在ROM(只读存储器)中
* c,"对象"存储在堆中
* 堆按照先进后出的存储方式存储数据,存储速度较慢.堆同样位于RAM.
* d,"引用"存储在堆栈中,存储的是对象的首地址,并通过地址指针指向位于堆中的对象.
*
* 2,对象的实例化过程
* 创建一个类的引用时,如Person p1这时将在堆栈中创建一个引用p1,
* 当p1 = new Person()时,在堆中创建了一个Person类型的对象,并且将该对象在堆中的首地址赋值给p1这个引用.
*
* 3,引用的比较
* 我们创建两个对象:
* Person p1 = new Person(); Person p2 = new Person();
* 这时,堆内存中存放了两个Person类型的对象,这两个对象的首地址不相同,
* 所以,第一个对象的引用p1和第二个对象的引用p2(p1,p2存储着对象的首地址)的值不相同.
*
* 4,对象和引用的生命周期:
* 大体来说,创建对象的引用和创建一个变量一样,都是分配在堆栈中的,
* 在方法中我们按照先后顺序定义的变量和引用,将在该方法结束后,同样按照先定义先释放的方式结束其生命周期.
* 但是对于一个引用,由于存放的是堆中对象的首地址,所以,在方法中当我们将null赋值给这个引用时,例如p1 = null,同样可以提前结束p1的生命周期.
* 当p1 = null后,结束的是引用的生命,但是堆中的对象并没有结束,而这个对象将等待java的垃圾回收器,在一个特殊的时间将其清除.
*/
class Person
{
private int age;
public void setAge(int age)
{
this.age = age;
}
public void shout()
{
int age = 23;//方法中定义的局部变量会覆盖类中定义的同名的成员变量;
/*
{
int age = 30;//错误,java中不允许在方法中定义与全局变量同名的局
下述十四个技巧,是许多人在大量的数据库分析与设计实践中,逐步总结出来的。对于这些经验的运用,读者不能生帮硬套,死记硬背,而要消化理解,实事求是,灵活掌握。并逐步做到:在应用中发展,在发展中应用。
1. 原始单据与实体之间的关系
&nbs ......