读书人

20天jvava(六)

发布时间: 2012-10-19 16:53:36 作者: rapoo

20天jvava(6)
corejava day06
2011.7.22
=============================
1.面向对象的基本概念
1)什么是面向对象?
面向对象Object Oriented,OO,
是软件开发过程的方法论,
使用“对象”的思维方式来解决业务域,
经常用到的一些术语:业务域、类、对象,
java是一种OOP的编程语言
2)面向对象的特征:
a.抽象:把业务域中关键名词提取出来形成类,
提取的过程是一个抽象分析的过程
b.封装:把数据(特征)和行为(动作)封装在一个,
形成一个类,封装也是抽象思维分析的一个继续
c.继承:通过定义子类扩展类的功能
d.多态:一个类在运行时具有动态的行为
通过OO方法开发的软件:适合于开发中大型的软件、
具有较好的可维护性、可扩展性、健壮性。
3)类的定义
类是业务域中一个关键的名词,它是对象的模板,
类具有属性(数据)和方法(行为)
4)类和对象的关系
对象是一个个体,是类的一个实例
5)引用和对象的关系
引用变量:通过引用类型声明的变量
Date d; Book book; int[] arr;
Java栈(stack):JVM中的一个内存区域,
用于存放各种类型的变量,包括引用变量、局部变量
堆(heap):JVM中的一个内存区域,
用于存放对象,为对象分配内存空间
引用变量的值是对象在堆中的地址
对象:通过new创建对象,对象存在于堆中
d=new Date();
对象的创建过程(通过new创建):
a. java在堆中分配一块内存空间
b. 将对象的内容放在对象的空间中
c. 将对象在堆中的内存地址赋给其引用变量
int[] arr1={1,2,3};
int[] arr2=arr1;
int[] arr3=Arrays.copyOf(arr1,3);

Date d = new Date();
引用变量、对象变量、对象在实际中通常我的并没有严格区分


2.类
1)类定义,类的封装性
[访问修饰符] class 类名{ //访问修饰符是public
属性(成员变量)
常量
方法
}
2)属性的定义
[修饰符] 数据类型 名称;又称为成员变量
3)常量的定义
常量一旦初始化就不能改变它的值
public static final 数据类型 常量名称;
4)方法的定义
[访问修饰符] [static] 返回值类型 方法名称(
参数列表){
方法体
}
访问修饰符:代表访问范围,有默认\public\private三种
static:表示静态方法,可以通过类名直接访问,
在静态方法内部不能访问非静态的成员(包括属性和方法)
5)方法的重载及其意义
具有相同的名称,但是参数不同的方法称为重载的方法
意义:将类似功能定义成相同名称的方法,程序更加简洁

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

Y
构造方法:public Point(int x, int y)
计算当前点到原点的距离 方法:public double distance()
计算当前点到另外点的距离: public double distance(Point other)

3.对象的生成
1)创建对象
类名 变量名称=new 类名([实参]);
//创建一个Date对象
Date d = new Data();
//创建引用类型(Random)的变量
Random rand = new Random(1);
重点理解和掌握:对象的创建过程
2)构造方法的定义
构造方法:和类具有相同的名称,但没有返回值,
在创建对象时自动调用构造方法,
通常用于为类的属性提供初值
3)构造方法的重载
具有不同参数个数或参数类型的构造方法,
在创建对象时根据new语句的参数调用对应的构造方法
*无参构造方法通常称为默认构造方法,
类中没有默认构造方法时,java会自动提供了一个默认构造方法,
如果类中定义了非默认构造方法,
java就不会再自动提供默认构造方法

4)this关键字的用法
this指代当前对象,通常用在类的各种方法中

4.以引用为参数的方法调用
1) Java方法的值传递特性
重点理解:在调用java方法时,
实参通过按值传递的方式传递给形参
2) 引用类型值传递和基本类型值传递
基本类型的按值传递只是传递了变量的数值,
不能将方法中改变的值传递到方法调用之后.
引用类型的按值传递传递的是对象的地址,
在调用结束后对用的地址并没有改变,
但对象的内容却可能发生变化
3) 引用类型值传递的调用过程
a. 实参将对象的地址传递给形参
b. 方法修改对象的内容
c. 在方法调用结束时,形参不会将对象的地址传回实参
d. 此时实参指向的对象地址并没有改变,但内容却可以发生改变






读书人网 >编程

热点推荐