***面向对象笔记
***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
分享到:
相关推荐
该文是对Java面向对象机制学习的全面、深入、具体的总结,全文4千余字,字字珠玑,堪称Java学习的超级经典之作
WI TWO 淘宝分享Java面向对象编程(孙卫琴)_学习笔记
收集的java李兴华老师的课件笔记。感觉还不错,适合回顾和新手补习。
java基础(超详细。。学习笔记) Java源代码 面向对象编程学习
Java学习笔记-面向对象-001-面向对象概括 还会继续上传后续文本 详情访问http://www.feifeiblog.com/
收集的java李兴华老师的课件笔记。感觉还不错,适合回顾和新手补习。
JAVA的面向对象编程学习笔记
Java学习笔记,面向对象深化
Java学习笔记,面向对象初步
Java基础学习笔记(印象笔记) Java 是一种广泛使用的面向对象编程语言,最初由 Sun Microsystems(现为 Oracle Corporation)于1995年发布。它具有简单、易学、可移植、安全和高性能等特点。 Java 是一种跨平台语言...
这个文档是我本人通过学习JAVA面向对象部分总结出的文档,知识点都包含在内,继承,封装,多态等概念,以及相关代码并给于注释,面向对象部分是JAVA的核心部分,面向对象这部分是理解JAVA的最好途径,共大家学习借鉴...
内容为本人学习java面向对象部分整理的笔记,内容为面向对象的基础知识
Java基础之笔记系列—Day06(面向对象,开发代码)
java学习笔记大全:java内容介绍 java编程可以分成三个方向: 1、java se (j2se)桌面开发 java中的基础中的基础 2、java ee (j2ee)web开发 3、java me (j2me)手机开发 java se课程介绍 java面向对象编程(基础) java...
Java面向对象编程学习笔记.pdf
Java基础常识、如何安装Java工具、Java语言的基础组成、Java面向对象、Java多线程、Java常用类、集合(重点)、IO流、GUI图形界面、网络编程、正则表达式、反射、注解、类加载器、动态代理等等,另外还包括银行管理...
java语言概述,java语言基础,程序的控制语句,数组,面向对象基础,继承,多态,抽象类,接口,异常处理,集合类,输入输出流,多线程,JDBC连接数据库等简单的java基础知识。 适合想学习java语言的同学们下载。 ...
《Java JDK6学习笔记》是作者良葛格本人近几年来学习Java的心得笔记,结构按照作者的学习脉络依次...而对于一些曾经学习过Java,但概念和基础仍不扎实的读者,本书也准备了一些面向对象的观点与进阶的议题可供参考。
java面向对象学习笔记,包括基础知识,二进制,运算符,数组
000000_【课程介绍 —— 写在前面的话】_Java学习概述笔记.pdf 010101_【第1章:JAVA概述及开发环境搭建】_JAVA发展概述笔记.pdf 010102_【第1章:JAVA概述及开发环境搭建】_Java开发环境搭建笔记.pdf 010201_【第2...