笔记心得04

[b]面向对象(OO)[/b]
按照东西的特征和自然组织形式, 进行软件开发过程的
组织, 是一个开发过程的方法论.

学习面向对象: 学习如何用OO语法描述事物的特征和
自然组织形式.

学习面向对象思维的前提是朴素的哲学逻辑.
如: 多态, 抽象概念的具体实现是多态的,
如:美女是多态的!

对象(Object)->东西, 啥都是东西.

类(Class)
类是用来描述一个领域模型中的具体概念(名词)的.
领域模型: 一个应用软件业务范畴, 也叫业务模型.
属性: 描述具体概念的特征.

案例:
<图书馆管理系统>中的概念: 书 Book
书的特征: 书号, 书名, 编号, 作者, 价格...

Java中的类语法
修饰词 class 类名{
修饰词 类型 属性;
}

public class Book{
int id;
String name;
String[] authors;
String isbn;
double price;
}

对象(Object)概念的具体实例,对象是类的具体实例!
《山楂树之恋》是一本书,
《和空姐同居的日子》是一本书,

引用:是指向具体对象的句柄,相当于自然语言的代词。

请给我《山楂树之恋》这本书,这本书很感人。
对不起,书卖完了!

代词本身不是对象,代词引用了一个具体对象。
在特殊情况下代词可能指空。
经常简单的叙述事物时候,不严格区别代词与对象。

Java 中的引用和对象
Book book = new Book();
//book 引用变量,具体引用一个书的实例。
book.name = "月子";
book.authors = new String[]{"白云","黑土"};
book = null;//book引用null

引用是null时候,访问属性或方法时候会出现:
空指针异常 java.lang.NullPointerException

案例:
平面绘图坐标系中的一个点(Point),定义合理的属性
坐标是int类型.
O+-----------------------------> X
|
|
|
|
| . p(x,y)
|
|
|
|

Y

构造器(构造方法)
用来描述对象的创建过程的.
如: 月饼实例的创建, 使用面和馅创建.
制作(构造器)
月饼模子(类) -----> 月饼(对象)
原料(构建参数)

点类型 --------> 原点
(0,0)

Java中的构造器: 声明在类内部, 方法名与类名一致
的方法叫构造方法, 构造方法不能声明返回值类型.
构造方法可以包含参数, 参数一般是创建对象实例
必须依赖的条件(前提条件).

new运算: 创建对象实例
1 根据类的属性在堆中分配对象空间.
2 根据参数类型调用构造器.
3 new运算返回对象的引用地址.
对象的创建过程
1 根据类的属性在堆中分配对象空间,并且自动初始化.
2 根据参数类型调用构造器.

this 是对当前对象的引用, 是当前对象本身.
可以使用this明确的访问当前对象的属性或者方法
类似于"我".
this() 是调用本类的其他构造器, 可以使用构造器的
重用, 简化代码的实现.
* this() 必须写在构造器的第一行!

构造方法经常会重载
方法签名 = 方法名+参数类型列表
方法重载:a 方法名一样 b 方法参数不一样
也可以说: 方法名一样, 方法签名不同的方法

默认构造器
1 如果类没有声明任何构造器,Javac自动提供一个
默认构造器, 无参数默认构造器
2 如果提供构造器声明, Javac将不再提供默认构
造器.

对象的方法, 表示对象的功能, 依赖于对象存在.
如: p1.distance() 和 p2.distance()
方法是动作,是功能,一般用动词声明.
方法也经常重载, 重载:方法名一样, 参数不一样
重载体现了, 功能的多态.
重载的方法经常互相重用.

java方法参数的传递规则: 基于值的传递, 是变量值的
复制, 基本类型就是其中值的复制, 引用类型是引用
值(地址)的复制.
* 变量的值: a 基本类型的值是其本身,
b 引用变量的值是一个地址值,
是被引用对象的首地址.
为了避免引用参数传递的副作用, 建议一切结果使用
返回值带回. 使用return带回来就可以

数组对象
int[] ary = new int[10];
int[] ary1 = ary;
//数组的复制
int[] ary2 = new int[10];
for(int i=0; i<ary.length; i++){
ary2[i] = ary[i];
}
//ary2 是 ary 一个副本
//java 提供了现成的复制方法:
int[] ary3 = new int[10];
System.arraycopy(ary, 0, ary3, 0, 10);
//Java6 以后提供了:
int[] ary4 = Arrays.copyOf(ary, 11);

元素是对象数组
String[] authors = new String[5];
Book[] books = new Book[]{
new Book(1, "日子"),
new Book(2, "空姐")};
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值