4、封装

来源:互联网 发布:淘宝打单打印机 编辑:程序博客网 时间:2024/05/22 03:05
1、定义类成员时,public表示所定义的成员可以使用声明的对象名称加上.运算符来直接调用;
   而private用来定义一个私有成员,私有成员只能在类中使用,不可以通过参考名称加上.运算符来直接调用。
   
2、如果在声明成员时不使用存取修饰词,则预设以包(package)为存取范围

3、方法成员的参数行用来传入执行时所需的数据,如果传入的参数是基本数据类型,则将值复制到参数行上的参数;
   如果传入的参数是一个对象,则会将参数行上声明的参数参考到指定的对象。

4、方法区块中声明的变量在方法执行完后自动清除。
   如果方法中声明的变量名称与类域成员的名称相同,则方法中的变量名会暂时覆盖域成员的作用范围,
   参数行上的参数名称也会覆盖域成员的作用范围。
   如果此时要在方法区块中使用域成员,可以使用this来指定。

5、关于this

   某个类声明的对象会各自拥有自己的域成员,但是方法成员在内存中共享,只有一份。
   既然方法成员在内存中仅有一份,那么如何知道方法成员返回的数据是哪个对象的呢?
   其实使用引用名称来调用对象的方法成员时,程序会将对象的引用告知方法成员,
   每一个类中的方法成员都会隐含一个this引用名称,可用来指向调用它的对象。如:
   public double getName()
   {
       return this.name;
   }
   
   this除了用来引用自调用方法的实际对象之外,还有一种可以带参数的用法,
   主要是用于调用构造函数,而避免直接以构造函数的名称来调用。例如:
public class Ball   {       private String name;      public Ball()   {       this("No name"); //会使用Ball("No name")来构造   }      public Ball(String name)   {       this.name = name;   }   }

6、关于static
   
   对于每一个基于相同类产生的对象而言,它们会拥有各自的域成员。
   被声明为static的域成员称为静态成员,由所有对象所共享,属于类所有;不鼓励通过对象名称加上.运算符存取静态域成员,
   建议使用类名称来存取,这样可以避免与非静态域成员混淆。
   但要注意的是:static域成员同样遵守public, protected, private的存取限制。
   
   与静态域成员类似,可以声明方法为static(静态)方法。
   
   因为静态成员属于类而不是对象,所以当调用静态方法时,并不会传入对象的参考,即静态方法中不会出现this。
   由于没有this名称!!所以在静态方法中不允许使用非静态成员!因为没有this就无法分辨要存取的是哪个对象的成员!
   
   在Java中程序入口点的main()方法就是静态方法,如果要直接在main()中调用其他的方法,则必须是静态方法!!
   (
     静态方法可以调用非静态方法吗? 不可以!! 
     必须实例化那个函数所在的类,比如在main函数中就是这样!或者将此方法改为static!


7、返回值类型不可作为方法重载的区别根据。

8、在Java中并没有析构函数,但有finalize()方法;
   如果确定不再使用某个对象,可以在参考至该对象的名称上指定null,表示这个名称不再参考至任何对象。

0 0