Java基础学习笔记之三_面向对象

来源:互联网 发布:windows自带纸牌游戏 编辑:程序博客网 时间:2024/05/02 06:47
***面向对象笔记
***1.面向对象的相关理念 
1)万物皆为对象。 
2)每个对象都是唯一的,世界上没有完全相同的两片树叶,在JVM中,保证对象的唯一性的实现是在内存中分配唯一的地址。 
3)对象具有属性和行为。
4)对象都属于某一个类,类是具有相同属性和行为的对象的集合。建立对象时,JVM将类载入内存,然后以其为模板进行对象的构建。

5)接口是一个抽象的概念,指系统对外提供的所有服务,描述了系统能提供哪些服务,但是不包含服务的实现细节。

    利用接口提高了子系统之间松耦合性。某个子系统内部的实现发生了改变,但是只要接口不变,就不会影响到主机子系统。在Java中,接口有两个意思:a.对象中表现为public类型的方法,在外可以被调用。b.用interface关键字定义的实实在在的接口,它用于明确地描述系统对外提供的所有服务。 

6)面向对象编程对于封装的实现主要是通过访问控制机制来进行封装的,这种机制能控制对象的属性和方法的访问权限。封装的原则:a.把尽可能多的东西藏起来,对外提供简捷的接口。b.把所有属性藏起来,必要的设置和读取用getter和setter 
7)继承中,父类用Private修饰的属性和方法对子类的透明。 
8)多态一个名称多种形态。比如:是指当系统A访问系统B的服务时,系统B可以通过多种实现方式来提供服务,而A全然不知。 
9)动态绑定是指JVM在运行时根据引用对象的不同绑定方法实现多态。

***2.创建对象 
1)显示创建: 
    a.用new创建对象。 
    b.使用反射手段,即调用java.lang.Class或者java.lang.reflect.Constructor类的newInstance()实例方法。 
    c.调用对象的clone()方法。注意,这种方法不会调用类的构造函数 
    d.使用反序列化的方法。 
2)隐式创建: 
    a.String str= "hello";这种属于String类型直接数对应一个String对象,引用一个String对象。若此时运行String str2= 
"hello";则str和str1是同一个对象。 
    b.String中+的使用。 
    c.JVM加载一个类的时候,会隐含创建描述这个类的Class实例。 
3)创建步骤: 
    a.给对象分配内存。 
    b.将对象的实例变量自动初始化为其变量类型的默认值。 
    c.初始化对象,给实例变量赋予正确的初始值。 

3.运行程序的步骤: 

1)把.class文件中的二进制数据加载到内存中。 
2)对类的二进制数据进行验证 
3)解析并执行指令 
运行时数据区: 
栈区——基本数据类型,局部变量(指向堆区),主方法的调用 
堆区——存放具体对象信息,对象中的方法是一个指向方法区的引用 
方法区——存放类的类型信息。类型信息包括#静态变量#和#方法#,而方法信息中包含类的所有方法的字节码。 
例如:Doll beibei = new Doll("贝贝"); 
其中beibei在栈区,指向一个名字为“贝贝”的Doll实例(在堆区),而Doll实例含有的方法则指向方法区。

参考文章:

  1.http://www.cnblogs.com/gnuhpc/category/347170.html

  2.http://www.cnblogs.com/gnuhpc/archive/2013/01/04/2843742.html

  3.http://www.cnblogs.com/gnuhpc/archive/2012/12/17/2822361.html

  


原创粉丝点击