美文网首页
java 对象导论

java 对象导论

作者: 天青色的鱼儿 | 来源:发表于2018-06-17 01:15 被阅读0次

1.程序的抽象过程

    任何对编程语言都会提供一种抽象的机制。不同的语言的抽象的层次不一样,比如汇编语言就是对底层机器语言的轻微的抽象,C语言就是对汇编语言的抽象(FORTRAN,BASIC等命令式语言)。这些面向过程的语言虽然在汇编语言的基础上进行了良好的抽象,但是仍然依靠于具体的计算机的结构实现。

    而另外一种方式是只针对待解决的问题建模。将问题空间中的元素及其在解空间中的表示称为“对象”。这种思想的实质是:程序可以通过添加新类型的对象使得自身适用于某个特定的问题。因此面向对象编程(Object-oriented Programming,OOP)允许我们根据问题来描述问题,脱离了具体的解决方案的计算过程。每一个对象都想一个微型的计算机,具有状态,操作,用户可以要求对象执行这些操作。

2.一切都是对象

    虽然java语言是基于C++的,但是相比C++,java是一种更加纯粹的面向对象的程序设计语言。

    Java作为一种面向对象语言。支持以下基本概念:

对象

多态

继承

封装

抽象

实例

方法

消息解析

在此研究对象和类的概念:

    对象:对象是类的一个实例,有状态和行为。例如,一条狗是一个对象,它的状态有:颜色、名字、品种;行为有:摇尾巴、叫、吃等。

    :类是一个模板,它描述一类对象的行为和状态。

java中的对象:

    让我们深入了解什么是对象。在我们周围真实的世界,会发现身边有很多对象,车,狗,人等等。所有这些对象都有自己的状态和行为。比如一条狗,它的具有的状态有:名字、品种、颜色,具有的行为有:叫、摇尾巴和跑等。

    对比现实对象和java编程中的对象,它们之间十分相似。编程对象也有状态和行为。编程对象的状态就是属性,行为通过方法体现。在软件开发中,方法操作对象内部状态的改变,对象的相互调用也是通过方法来完成。

java中的类:

    java中的类可以看成是创建Java对象的模板。

通过下面一个简单的类来理解下Java中类的定义:

语法如下:

class 类名称{

         属性(变量);

         行为(方法);

}

具体的一个范例:

class Person {

    String name ;

    int age ;

    public void tell() {

          System.out.println("姓名:" + name + ",年龄:" + age) ;

         }

}

一个类中可以包含以下类型变量:

    局部变量:在方法、构造方法或者语句块中定义的变量被称为局部变量。变量声明和初始化都是在方法中,方法结束后,变量就会自动销毁。

    成员变量:成员变量是定义在类中,方法体之外的变量。这种变量在创建对象的时候实例化。成员变量可以被类中方法、构造方法和特定类的语句块访问。

    类变量:类变量也声明在类中,方法体之外,但必须声明为static类型。

 

一个类中可以包含多个方法 :

    在上面的例子中:tell()是类Person的方法。

构造方法:

    每个类都有构造方法。如果没有显式地为类定义构造方法,Java编译器将会为该类提供一个默认构造方法。

    在创建一个对象的时候,至少要调用一个构造方法。构造方法的名称必须与类同名,一个类可以有多个构造方法。

    下面是一个构造方法示例:

public class Person{

   }

    这个构造方法不进行任何操作,java编译器提供的默认构造方法就是这样。

public Person(String name){

      this.name = name;//这个构造器将参数赋值给对象的name局部变量

}

创建对象:

    对象是根据类创建的。在Java中,使用关键字new来创建一个新的对象。创建对象需要以下三步:

声明:声明一个对象,包括对象名称和对象类型。

实例化:使用关键字new来创建一个对象。

初始化:使用new创建对象时,会调用构造方法初始化对象。

    下面是一个创建对象的例子:

public class Person {

    String name ;

    int age ;

    public void tell() {

          System.out.println("姓名:" + name + ",年龄:" + age) ;

         }

}

public static void main(String []args){

      //下面的语句将创建一个Person对象

      Person person = new Person("张三" );//调用自己编写的构造器

                person.tell;

   }

}

    编译并运行上面的程序,会打印出下面的结果:

姓名:张三,年龄:0

年龄因为未初始化,所以java默认赋值为0;

3.java中对象操作声明:

1.用应用操作对象

     每一种编程语言都有自己的操作内存中元素的方式。java中内存中一切元素都被视为对象,因此采用单一的语法来操作内存中的对象。虽然我们是对对象进行操作,但是实际操作的标识符是对内存中对象的一个“reference”(引用,这个像C语言中的指针操作)。引用与对象的关系就像电视机与遥控器的关系,电视机是一个对象,但是我们不是直接在电视前面去操纵电视机(虽然这样也可以,但是不符合实际),而是使用遥控器来操纵电视机,只要我们拥有了电视机对应的遥控器(也就是对象的引用),我们就能够控制对象,保持与对象的连接。

2.必须由我们来创建每一个对象

      一旦我们创建了一个引用,我们就需要一个新的对象与这个引用配对。通常我们使用一条像

Person person=new Person()

的语句来创建一个对象,将新创建的对象与引用person相关联。(当然java中的基本数据类型是一个特例,这些基本数据类型都有其对应的包装类来对于java的对象机制,暂且不表)

以下是java中的基本数据类型:

3.永远不需要销毁对象

    虽然我们知道在程序中都有作用域,但是java中,虽然我们知道一个引用在作用域终点之后就消失了,我们再也不能通过这个引用去访问这个对象,但是这个引用还是存在。如果你需要,这个对象可以一直存在直到程序结束。但是java程序运行的过程中并不会因为不停的创建新的对象而导致内存溢出。

    这一次都是java语言的垃圾回收机制的功劳。java有一个垃圾回收器,用来监视程序使用new关键词创造的所有的对象,并区分那些不会被引用的对象进行回收,释放这些内存空间,以便供其他的对象使用。

    所以在java中我们不需要像C语言那样申请空间之后还需要显式的释放空间,这一切都被java虚拟机自动的完成。

相关文章

  • java 对象导论

    1.程序的抽象过程 任何对编程语言都会提供一种抽象的机制。不同的语言的抽象的层次不一样,比如汇编语言就是对底层机器...

  • Java——对象导论

    抽象过程 万物皆对象 程序是对象的集合,它们通过发送消息来告知彼此所要做的。 每个对象都有自己的由其他对象所构成的...

  • 读书笔记 | 《Think in Java》Ⅱ一切都是对象

    上篇:读书笔记 | 《Think in Java》前言&Ⅰ对象导论 Ⅱ. 一切都是对象 ---4.4更新--- 2...

  • 《Java编程思想》——对象导论

  • Java 之路 (一) -- 对象导论

    写在开篇 作为计划中的 java 学习系列的第一篇,说一点废话。 最开始学习 java 还是在大二下学期学校开的课...

  • Thinking in Java-对象导论

    抽象过程 所有编程语言都提供抽象机制。汇编语言是对机器语言的抽象,“命令式语言”(C、BASIC等)是对汇编语言的...

  • Java重温-对象导论01

    重读《Java编程思想》之对象导论一章,非常有感触。 几句特别印象深刻的话。 1.“我们之所以将自然界分解,组织成...

  • [Java编程思想] 对象导论

    该系列文章是在读《Java编程思想》时的读书笔记。一只菜鸟,如文章中有错误,还请指出,非常感谢。欢迎相互交流。--...

  • Thinking in Java笔记——对象导论

    我们之所以将自自然界分解,组织成各种概念,并按其含义分类,主要是因为我们是整个口语交流社会共同遵守的协定的参与者,...

  • Java编程思想 ——对象导论

    抽象过程 所有编程语言都是抽象机制。人们所能够解决的问题的复杂性,直接取决于抽象的类型和数量。汇编语言是对底层机器...

网友评论

      本文标题:java 对象导论

      本文链接:https://www.haomeiwen.com/subject/fceieftx.html