9、一切都是对象

在Java世界中一切都被视为对象。尽管一切都看做对象,但操作的标识符实际上就是一个对象的引用,也就是说你拥有一个引用,并不一定需要一个对象与它关联。因此在操作一个对象之前,则可以先创建一个引用,例如:

String s; // 这是一个String类对象的引用

这里创建的只是引用,并不是对象,这是调用s返回消息那么就会显示错误。 所以必须创建对象。

一旦创建了 一个引用,就希望它与一个对象关联,通常用new操作符来实现这一个目的。 例如:

s = new String();

一个对象是如何 存储在内存中的呢?

  • 寄存器:这是最快的存储区,但是 数量极其有限,所以我们不能直接控制寄存器,在程序中也感觉不到寄存器的存在。
  • 堆栈:位于通用RAM(随机访问存储器中)这是一个快速有效的储存方法。创建程序是Java系统必须知道所有存储在堆栈中的所有项的生命周期,这点约束了程序的灵活性,所以堆栈中-存储引用,但是java对象并不在其中
  • 堆:内存池中没有生命周期的限定,所以在这个区域内存储java对象。

       

       

       

       

       

9.1 类

类是决定对象外观和行为的类型。通过class关键字创建, 后面紧跟类名:例如:

class People{

    /* 这是一个类 */

}

那么现在我们就可以来创建一个类的对象:

People people = new People(); // 创建People类型的对象

现在这个类没有定义方法和属性,它什么都不能做。

9.1.1 字段和方法

   

一旦定义了一个类那么就可以在类中定义两个元素:

  • 字段: 是任何一种数据类型的引用,也可以是任何一种基本数据类型的一种
  • 方法: 这个操作字段,或者是行为

       

       

    例如:

    人有姓名: 可以在People类中定义一个String类型的字段存储名字

    人说出自己的名字,定义一个方法说出自己名字:

/**

* 定义一people

* @ClassName: People

* @Description: TODO(这里用一句话描述这个类的作用)

* @author zjkorder

* @date 20151211 下午1:21:57

*

*/

class People{

      

    String name = "张三"; // 定义String类型的字段储存张三的名字

      

    /**

     * 定义一个方法叫自我介绍 来说出自己的名字

     * @Title: introduceMyself

     * @Description: TODO(这里用一句话描述这个方法的作用)

     * @param 设定文件

     * @return void

     * @throws

     *

     */

    public void introduceMyself(){

        System.out.println("我叫"+name);

    }

}

在类中的字段都有默认值,基本数据类型的默认值是:

Boolean

False

Char

Null

Byte

0

Short

0

Int

0

Long

0L

Float

0.0f

Double

o.0

   

9.1.2 方法

   

方法的基本组成部分包括:名称,参数,返回值和方法体

 9.1.3面向对象的三个特性:

 

  • 封装性:就是将数据和数据的操作封装在一起,

  • 继承: 子类可以继承父类的属性和功能,即子类继承了父类所有的数据和数据上的操作,同时又可以添加子类独有的数据和数据上的操作。

  • 多态:有两种意义上的多态

  1. 操作名称的多态:即多个操作具有相同的名字,但这些消息所接收的消息类型必须不同。

  2. 和继承有关的多态:同一个操作被不同类型对象调用时可能产生不同的行为。

原文地址:https://www.cnblogs.com/zjkorder/p/5038746.html