java面向对象编程基本概念
来源:互联网 发布:sql count(1) 编辑:程序博客网 时间:2024/04/25 17:05
面向对象基础:
对象的进化史
a)基本数据类型阶段---->数据少---->无数据管理时代b)数组---->数据多了。将同类型的数据放到一起---->弱管理
c)结构体---->数据多了,数据复杂了。将不同类型的数据放到一起---->强管理
d)对象----->数据多了、类型复杂了、行为复杂了。将不同类型的数据放到一起---->超强管理
面向对象编程(OOP)的本质
以类的方式来组织代码,以对象组织数据。对象是具体的事物,类是对对象的抽象
对象和类:
对象是具体的,类是抽象的。类也是一个模版,通过类这个模版我们也可以new对象。
定义类:
public class 类名 {
//属性private 数据类型 属性名; //建议增加相应的getter、setter方法
//方法
//构造方法
}
构造方法:
1. 方法名必须跟类名保持一致
2. 无返回类型
3. 通过new来调用
4. 无参构造器问题:
a)如果我们没有手动定义构造器,系统会自动为我们添加一个无参的构造器
b)如果我们自己定义了构造器,系统就不会为我们添加无参构造器
5. 构造方法的第一句总是:super,即调用直接父类的构造方法。
a)有继承关系的构造方法调用的顺序
方法的重载(Overload):
两同(同一个类、同一个方法名)三不同(参数列表不同:;类型、个数、顺序)
返回值不同,构成重载吗? No
形参名称不同,构成重在吗? No
this:
普通方法中,调用本方法的对象。
构造方法中,正要初始化的对象。
还可以用来,调用其他的构造方法
super:
static:
用它修饰的变量和方法,就变成了静态变量和静态方法。从属于类。通过类名即可调用。实际存储于方法区中。
package:
package必须位于非注释行第一句。
包名:域名到这写
import:
引入外部的类
Import static :导入类的静态属性
final:
修饰变量:常量(命名规范:全部大写,多个单词之间通过下划线隔开)
修饰方法:不能被重写
修饰类:不能被继承
面向对象的三大特征:
封装
通过private、default 、protected、public关键字实现属性或方法的封装。“高内聚,低耦合”
继承
通过extends 。两个好处:
1.代码重用
2.通过继承实现对现实世界更加准确的建模
类只有单继承,没有像C++那样的多继承
方法重写(Override)的要点:
=:方法名保持一致
>=: 子类权限修饰符可以大于等于父类的。
<=, <=: 子类的返回值类型小于等于父类的类型。子类声明异常类型不能超过父类的类型。
Object类:
1.是我们所有类的根基类
2.toString
3.equals、hashcode
4.wait、notify、notifyAll
多态(polymorphism)
三个必要条件:继承、方法的重写、父类引用指向子类对象
动态绑定、静态绑定:抽象类:
1.包含抽象方法[微软用户3] 的类,一定是抽象类。2.抽象类不能被new。
3.抽象类可以包含:普通方法、成员变量、构造方法
接口:
1.interface
2.类实现接口:implements 可以实现多个接口
3.接口可以多继承
4.接口定义的一组规范!实现现实世界中这样的逻辑::如果你是…则必须能…
内存机制:
栈1.存放局部变量
2.不可以被多个线程共享
3.空间连续,速度快
堆
1.存放对象
2.可以被多个线程共享
3.空间不连续,速度慢,但是灵活
方法区
1.存放类的信息:代码、静态变量、字符串常量等
2.可以被多个线程共享
3.空间不连续,速度慢。但是灵活
垃圾回收器(GC Garbage Collection):
1.程序员不能调用垃圾回收器。但是可以通过System.gc()建议回收。
2.finallize:一般用不到
0 0
- java面向对象编程基本概念
- 【翻译】Java 面向对象编程基本概念
- 【翻译】Java面向对象编程基本概念——多态
- 【翻译】Java面向对象编程基本概念——封装
- 【翻译】Java面向对象编程基本概念——抽象
- Java基础知识:面向对象-基本概念
- java面向对象的基本概念
- JAVA面向对象编程基础复习(一)面向对象基本概念
- iOS OOP 面向对象编程基本概念
- Python3面向对象编程(1):面向对象基本概念
- ava面向对象-面向对象编程之基本概念
- Java 面向对象编程
- Java面向对象编程
- Java面向对象编程
- java面向对象编程
- Java面向对象编程
- Java面向对象编程
- Java面向对象编程
- 关于学习资源的整合网站(想自学的可以看一下)
- Android PopupWindow的使用和分析
- 2. Zend_Controller 快速入门
- Java面向对象之重载和重写
- javaSE学习笔记之线程
- java面向对象编程基本概念
- [学习笔记—Objective-C]《Objective-C 程序设计 第6版》第十一章 分类和协议
- 第4章 基纳法 阅读(PageRank的兄弟)
- perl 面向对象 -> 符号使用
- 2.2 Zend_Controller 基础
- 键值表
- iOS7中的多任务
- linux变量的心得
- Android入门(14)——使用Spinner实现下拉列表