天天看点

java随笔面向对象

1 面向过程编程和面向对象编程

1) 面向过程编程, 实现某个功能时,使用函数之间相互调用完成的。函数之间的关联性很强。

当功能发生改变时,需要重写新编写函数。

2) 面向对象编程,实现某个功能时,把实现的方式拟人化,通过调用各个对象的功能来实现要求。

盖房子:

打地基

砌墙

盖房顶

1 过程

定义方法: 打四方形地基的方法

砌四方形墙的方法

盖四方形的房顶的方法

盖房子的方法(){ //四方法的房子。

打四方形地基的方法

2 对象:

打地基的人{

打地基的方法;

砌墙的人{

砌墙的方法

}

盖房顶的人{

盖房顶的方法;

盖房子(打地基的人,砌墙的人,盖房顶的人){

打地基的人.打地基的方法

砌墙的人.砌墙的方法()

盖房顶的人.盖房顶的方法()

2 面向对象编程

核心“对象"

1) 什么 是对象? “万物皆对象"

现实世界里每个实实在在存在的个体==》对象

2) :如何把现实中的对象 ==》抽象==>程序中的对象

对现实的对象==》归类 ==》在程序定义类 ==》 创建程序中的对象

归类:把具有相同特征和相同行为的一组对象归为一类。==》类名

相同特征 (静态属性):属性

相同行为(动态属性): 成员方法

每个对象有自己特有的属性值。 =》属性属于对象所有。

成员方法 : 属于对象所有。

一 类:

具有相同属性和方法的一组对象的统称。抽象的,概念性

类规定了程序中的对象所具有的属性和方法。

二类:

类是自定义的数据类型。 ==》引用数据类型

二者的关系 :

类:是抽象的。有一组相同属性和方法的对象抽象而得。

对象是具体的。 是类的具体化表现

一 面向对象分析 (OOD)

学生类:

属性:学号,姓名,性别,年龄,联系方法,家庭地址,

方法:学习,自我介绍

仅保留与项目相关的属性和方法

1) 找到类

2) 找到属性

3) 找到方法

二 面向对象设计

类图 ---》 UML(统一建模语言)

三 面向对象编程

一 定义类的语法:

访问修饰符 class 类名{

//属性

//方法

1 访问修饰符 public (所有包可见), 默认的(仅当前包可用)。

2 类名 , 首字母大写。见名知义。

3 属性: 属于对象所有 ->成员变量

数据类型 属性名;

数据类型 :基本类型,引用类型(类,数组,接口)

属性名: 第一个单词首字母小写,其他单词首字母大写。见名知义

注意:属性有默认值:

基本类型属性值:

byte,short,int ,long :0

float double : 0.0

char : \U0000

boolean : false

引用类型: null

4 方法: 属于对象所有 ==》成员方法

访问修饰符 返回值类型 方法名(参数列表){

方法体;

1) 访问修饰符 : public ,默认的, private ,protected

2) 返回值类型 :方法执行结束后,返回的数据类型

无返回:void

3) 方法名 : 第一个单词首字母小写,其他单词首字母大写。见名知义

4) 参数列表 :执行方法时需要的数据。

5) 方法体 :完成此方法的代码。

注意: 在成员方法中,可以访问属性

一 创建对象: 实例化对象

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

Student stu = new Student();

注意:对象名又称为引用名,存储是所引用对象的"地址";

二 访问对象的属性 和方法

1 给属性赋值:

对象名.属性名 = 值;

2 取属性的值:

对象名.属性名;

3 访问对象的方法

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

java随笔面向对象

一 步创建对象

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

二步 通过 .访问对象的属性和方法

1 访问属性

对象名.属性名

2 访问方法

一 java.lang.NullPointerException

:空引用异常

当引用类型的变量没有引用数据时,而是null

调用对象的属性和成员方法,则引发此异常

属性:成员变量 :可以类中所有成员方法中访问

局部变量 :在方法中定义的变量,形参,在条件结构或循环结构中定义的变量 { }

1 默认值, 属性有默认值 ,局部变量没有默认值 ,局部变量在使用前必须赋值

2 作用域不同,属性在类中任何成员方法中使用,局部变量仅可以定义的方法中使用。

3 优先级 ,当方法中有与属性同名的局部变量时,局部变量的优先高于属性。==》就近原则

在方法中区分属性与局部变量,在属性的前面加this.属性名;

构造方法:

1 构造方法的语法:

访问修饰符 构造方法名(参数列表){

注意事项:

1 构造方法名称必须与类名同名

2 构造方法没有返回值类型。也不能写void.如果写了void则不再是构造方法

2 构造方法的作用

构造对象并初始化属性值

3 何时使用构造方法:

创建对象时使用构造方法,与new关键词一起使用。

4 构造方法的分类:

隐式构造方法:如果类中没有定义任何构造方法,则系统给类提供一个public的无参构造方法;

显示构造方法:在定义类时,编写构造方法;此时系统不再提供构造方法

无参构造方法

有参构造方法

注意: 如果在类中定义构造方法,则系统不再提供无参构造方法;

因此在类中定义有参构造方法时,建议同时定义一个无参构造方法。

一 方法的重载 (overload)

1 在同一个类中

2 方法名相同,但参数不同的方法 == 》 方法重载

3 参数不同(个数,类型不同,顺序不同)

4 与形参的名称无关

5 与返回值类型无关

6 与访问修饰符无关

二 :好处

1 方便调用,增强代码的可读性

2 实现方法调用的多态:

一个方法名,根据参数的不同的执行不同的操作

三 哪些方法可以重载:

1 构造方法

2 成员方法

3 静态方法

this是什么?

this是一个引用,存储是当前正在运行的对象的"地址"

this在当前对象内部引用当前对象

每个对象内部都有一个this

2 this可以用在哪些地方? 在类中使用

在类的成员方法中使用

在类的构造方法中使用

3 如何使用this?

1) 在成员方法中使用,可以访问属性和成员方法

this.属性名 :

this.成员方法名(参数);

2) 在构造方法使用,可以访问属性和成员方法,

this.属性名

this.成员方法名()

3)在构造方法中,访问同类其他的构造方法

this(参数); ==》访问同类的其他构造方法 ,此行代码写在构造方法的第一行

this(); -->调用同类中无参的构造方法

好处 : 代码的复用

类 封装了对象的属性和方法

方法 封装方法的实现细节

一. 封装属性:

1 属性私有化

2 给属性提供公共的方法 :赋值方法(setter方法)与取值方法(getter)方法

赋值方法 : 无返回值,但带有参数(类型与属性的类型一致)方法

方法名: set属性名(参数){} ,把属性名的首字母改为大写

public void setSex(String sex){}

取值方法 : 有返回值(与属性类型一致) 无参的方法

方法名: get属性名(){} ,把属性名的首字母改为大写

public String getSex(){ return sex}

注意 :如果属性的类型为boolean则get方法改为:is属性名(); 把属性名的首字母改为大写

3 在set方法中添加控制语句

二. 使用封装的好处:

1 保证数据的安全性

2 代码可重用性

3 方便修改

一 访问修饰符:

public :公共 的

protected : 受保护的

默认的: (不写任何修饰符)

private :私有的

二 修饰类:(不指内部类)

public ,默认的

三 修饰变量(不包括局部变量),修饰方法

public ,protected,默认的,private

java随笔面向对象

 一  继承  extends  

java随笔面向对象

继承的优点 : 实现代码的复用及功能的扩展

类图:

二 、 java.lang.Object :是所有类的超类

定义类没有继承自任何一个父类,则默认继承Object

三 在java中继承的特点

一个子类仅可以有一个直接父类 ==》 “单一继承"

可以”多重继承"

四、子类可以继承父类的哪些内容

1 可以继承父类成员属性和成员方法(注意访问权限)

2 不继承父类的构造方法

3 子类除了继承父类的内容,还可以有自己特有的属性和方法

五 创建子类对象会调用父类的构造方法吗? 如果会调用,先调用父还先调用子类?

会调用父类的构造方法。先调用父类的构造方法再调用子类的构造方法。

六 如何在子类的构造方法中调用父类的构造方法的?

在子类的构造方法中,第一行调用父类的构造方法:

super(参数);

如果调用父类的无参构造方法:

super(); //可以省略不写

注意:

1 如果子类中没有显示的调用父类的构造方法,则默认调用父类的无参构造方法

2 如果在子类调用父类的带参构造方法,则必须在子类的构造方法第一行:super(参数)

3 如果父类中仅有带参构造方法,则子类的所有构造方法中必须显示的调用父类的有参构造方法;

七、 在java的程序中任何类之间都可以继承吗?

1) 从语法上说,可以。

2) 从语义不可以。 有“is-a"的关系 : 子类 是一个父类

父类如何得到的?

类 : 由现实的具有相同属性和相同方法的一组对象 抽象而得。

父类 : 由具有相同属性和相同方法的一组类抽象面得的。

编程: 父类 ==》 子类 ==》对象