JAVA面向对象 Part01 零碎知识点总结
2017-03-06 22:35
218 查看
面向对象基本概念,万物皆对象
定义:编程思想,思维方式
两种思维方式的区别:
面向过程
根据具体的操作步骤去实现程序
缺点:
不通用,耦合度高
不利于维护,不能适应变化
面向对象
解决程序适应变化的能力(可维护性强),降低功能之间的相互依赖,解耦!
如何建立面向对象思维方式:
先整体,在局部
在抽象,再具体
粒度
如何抽象:
考虑事物的共同点(共性)
能做什么,在怎么做
设计原则,设计模式
类与对象
类:通过类别/分类可以区分不同的事物种类
是一组具有相同特性(属性)与行为(方法)的事物集合.
对象:一切具体的事物
关系:
对象是一个个产物,是一个个体的特征
类表示一个共性的产物,是一个综合的特征
类由属性和方法租车
属性:特征
方法:行为
定义格式
class类名称 {属性;返回值方法名(参数…){}
}
一个类想要真正的进行操作,则必须依靠对象
类名称类对象名称
= new类名称()
访问类的属性:对象.属性
访问类的方法:对象.方法
声明对象:类名称对象名称
= null,没有内存指向,无法调用属性方法
实例化对象:类名称对象名称
= new类名称()表示分配内存,实例化对象
两种方式调用:
匿名对象调用
实例化对象(引用变量)调用属性方法
可以有多个引用类型变量共同指向一个对象
对象内存分析
栈内存,引用变量存储对象堆内存的地址
地址, 32位内存占4字节,
64位占8字节
堆内存
new:申请内存空间,表示实例化对象,创建
要尽早将对象置为null
没有引用指向的对象会被gc,可以调用System.gc();提醒系统尽快执行垃圾回收
封装性
面向对象三大特征之一
隐藏细节,仅对外部提供访问接口
好处:
模块化
重用
插件化,易于调试维护
安全,信息隐藏
构造方法
构造方法
类创建对象时自动调用的方法,用来初始化属性,也可以使用setter方法初始化
是实例化时第一个调用的方法
特点:
与类名相同
没有返回值
若没有写构造方法,编译器则会添加默认无参构造方法
构造方法的重载
可以自定义多个构造方法,但参数不同
互相可以使用this(…)调用
super(), this()必须在首行
call to super()/this() must be first statement in constructor body,只能位于构造器的首行
不能互相调用this(…)
recursive constructor convocation,递归调用构造器
构造方法私有化
保证该类只有一个对象
方法的重载
方法名相同,参数不同(方法签名:方法名,参数列表(参数类型,顺序,数量))
返回值,修饰符不能作为判断依据
String
实例化的两种方式
String s = new String();
常量池
堆区
String s = "";
常量池创建,若有则直接使用
区别:
直接赋值:检查字符串中的常量池(堆内存)是否存在该对象,如果存在,则指向该对象,若果不存在,则再常量池中创建并指向该对象(0/1个对象)
new:在堆中创建一个对象,然后检查字符串常量池,如果不存在,则会在常量池中创建该对象.
这种机制有助于节省内存,提高效率
由char数组存储
Extends
运行时常量池(Runtime Constant Pool)是方法区(Method Area)的一部分,是各线程共享的内存区域。
在方法区中,还有运行时数据区有Java堆、方法区、Java虚拟机栈、本地方法栈、程序计数器
Java虚拟机方面的知识,可以看一下下面的链接。http://www.cnblogs.com/Cratical/archive/2012/08/21/2649985.html
Notice
面向对象特征是什么:
封装,继承,多态(,抽象)
字符串相加是在堆区创建对象还是在常量池中创建对象
如果编译器可以确定,则为常量池中创建
String s = "a" + 1;
final String s = "a"; String b = s + "a";
否则在堆区创建
String s = "a"; String b = a + "a";
String a = getString() + "a";
字符串与变量相加,会产生大量垃圾对象
相关文章推荐
- JAVA面向对象知识点总结(6)— 抽象类、接口
- JAVA 面向对象和集合知识点总结(6.15更新)
- Java面向对象主要知识点总结以及简单项目心得
- JAVA面向对象知识点总结(7)— 多态性、Object类
- Java面向对象知识点总结
- Java面向对象知识点总结
- JAVA面向对象知识点总结(1)—类、对象、类中成员、匿名对象
- 黑马程序员——JAVA 面向对象知识点总结(三)
- Java面向对象必会的知识点--对象的特点总结
- JAVA面向对象知识点总结(4)— 单例设计模式:饿汉式、懒汉式
- JAVA 面向对象和集合知识点总结
- JAVA 面向对象和集合知识点总结
- 黑马程序员-java面向对象知识点总结
- JAVA面向对象知识点总结
- 4.java基础之面向对象知识点总结
- JAVA 面向对象和集合知识点总结
- java面向对象知识点总结
- JAVA面向对象知识点总结(5)— 继承
- JAVA面向对象知识点总结(2)—封装、构造函数、构造代码块、this关键字
- java面向对象知识点总结