您的位置:首页 > 编程语言 > Java开发

JavaSE 06 初识面向对象

2017-03-28 22:51 239 查看

1、面向对象和面向过程的理解

示例:把大象放到冰箱:

⑴ 面向过程:打开冰箱门 → 把大象放到冰箱中 → 关闭冰箱门。

⑵ 面向对象:⒈人:①打开冰箱,②放入大象,③关闭冰箱。 ⒉冰箱:①开门,②关门。

人(①)调用冰箱的(①)【人调用冰箱的开门功能】 → 人(②)【把大象放到冰箱中】 → 人(③)调用冰箱的(③)【人调用冰箱的关门功能】

总结:⑴面向过程:侧重于怎么做,强调功能行为。是以执行者的角度分析问题。适合小型项目。

⑵面向对象:侧重于让谁做,强调具备了功能的对象。是以指挥者的角度分析问题。适合中大型项目。

⑶面向对象和面向过程两者不是完全脱离开来的,二者相辅相成,不可分割。

2、面向对象的三大特征

封装、继承、多态

3、采用面向对象的思考方式解决问题

⑴ 分析问题中设计到了哪些对象

名词抽取法

⑵ 分析问题中用到了哪些功能

⑶ 按面向过程的方式,依次将步骤写下即可(调用对象的功能)

4、对象

Java中一切客观存在、可以被描述的事物都是对象。万物皆对象。

5、如何区分开每个对象

描述一个对象可以通过两个部分:属性和方法。

属性:描述对象的外部特征。如:姓名、年龄、体重、颜色等。

方法:描述对象的行为特征或功能。如:吃、睡、学习等。

6、类

一组具有共同属性和方法的对象的集合被成为类。

多个对象的属性和方法类似,可以将这组对象提取出来,定义成一个类。

7、类和对象的关系和区别

⑴ 关系

对象是客观存在的

类是抽象的,是一个模版,不能实际操作。

⑵ 区别

① 类是通过对象提取(思考)出来的。

对象是通过创建(写代码)出来的。

② 类是对象所属的类型。

对象是类的一个实例或实体。

8、创建类和对象

⑴ 创建类

① 创建一个class,起一个类名。如:Person

② 编写类的属性

语法:和声明变量的语法一样。

③ 编写类的方法

语法: 修饰符 返回值类型 方法名(形参列表){

方法体

}

⑵ 创建对象

① 创建对象

类名 对象名 = new 类名();

② 访问对象的属性

为对象的属性赋值:对象名.属性名 = 值;

使用对象的属性:对象名.属性名;

③ 使用对象的方法

对象名.方法名(实参);

9、类和对象的内存分配图



⑴ 栈:存放的是对象的引用和局部变量。

堆:存放的是对象。

方法区:存放的是类的描述信息,包括方法的描述。

⑵ 对象和对象之间是互相独立的,它们都有各自的存储空间,互不影响。

⑶ 当第一次创建对象时,类会被加载到方法区中。但是其他次创建对象时,类则不会继续被加载到方法区中。类只能被加载一次。整个方法区中只会存储一份类的描述信息。

10、类的成员

⒈ 属性

⑴ 属性的赋值

① 如果对象的属性不赋值,则会有默认值

int: 0 double: 0.0

char: ‘\u0000’ boolean: false

String: null

② 不同的对象的属性,是独立的,互不影响。

③ 如果为对象的属性赋予了新值,则会覆盖旧值。

⑵ 成员变量和局部变量的区别

① 变量的作用域:变量的作用范围。

② 如何确定变量的作用域:取决于包含此变量的,最近的大括号。

③ 根据变量作用域的不同,将变量分为两类

⒈成员变量(全局变量):

变量的作用域为整个类

⒉局部变量:

变量的作用域为某代码块(方法)

④ 成员变量和局部变量的区别

⒈ 局部变量必须先赋值,才可以使用。

成员变量可以不用赋值就使用,因为它有默认值。

⒉ 全局变量随着对象的创建而创建,伴随着对象的消亡而消亡。生命周期较长。

局部变量随着代码块(方法)的执行而创建,伴随着代码块(方法)的执行结束而消亡。声明周期较短。

⒊ 两个局部变量,如果在同一个代码块(方法)中,即有着相同的作用域时,则它们不能重名。

一个成员变量和局部变量可以重名,使用时遵循就近原则。

示例:

public class Test {

public static void main(String[] args) {

new Person().sayAge(); // 10
}

}

class Person {
int age = 20;

void sayAge() {
int age = 10;
System.out.println(age);
}
}


⒉ 方法

语法:修饰符 返回值类型 方法名(形参列表){

方法体

}

修饰符:public 公共的,一般建议加上

static 修饰方法:静态方法

没有用static修饰的方法:普通方法

注意:⑴ 通过类名可以调用静态方法,但不能调用普通方法。只能通过对象名来调用普通方法。

⑵ 静态方法中,只能访问静态的方法或静态的属性。

而普通方法既可以访问静态的方法或静态的属性,也可以访问普通的方法或普通的属性。

⑶ 原则上是能不加static 就不加。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java java se 面向对象