java面对对象程序设计_Java面对对象编程(1)

Java面对对象编程(1)

什么是面向对象(oop)

面向过程&面向对象

面向过程思想(线性思维)

步骤清晰简单,第一步做什么,第二部做什么....

面对过程适合处理一些较为简单的问题

面向过程像流程

面向对象思想()

物以类聚,分类的思维方式,思考问题首先会解决问题需要那些分类,然后对这些分类进行单独思考。最后才对某个分类下的细节进行面向过程的思考。

面向对象适合处理复杂的问题,适合处理需要多人协作的问题!

面向对象像框架

属性加方法变成类

对于描述复杂的事物,为了从宏观上把握,从整体上合理分析,我们需要使用面向对象的思路来分析整个系统。但是,具体到围观操作,仍然需要面对过程的思路去处理

什么是面向对象

面向对象编程(Object-Oriented Programming , OOP)

面向对象编程的本质就是:以类的方式组织代码,以对象的组织(封装)数据

抽象

三大特性

封装

继承

多态

从认识论角度考虑是先有对象后有类。对象,对具体的事物。类,是抽象的,是对对象的抽象

从代码运行角度来考虑是先有类后又对象。类是对象的模版

方法的回顾及加深

方法的定义

Java的方法类似于其他语言的函数,是一段用来完成特定功能的代码,一般情况下,定义一个方法包含以下语法:

方法包含一个方法头和一个方法体。下面是一个方法的所有部分:

修饰符:修饰符,这是可选的,告诉编译器如何调用该方法。定义了该方法的访问类型

返回值类型:方法可能会返回值。returnValueType是方法返回值的数据类型。有些方法执行所需的操作,但没有返回值。在这种情况下,returnValueType是关键字void

方法名:是方法的实际名称。方法名和参数表共同构成方法签字

参数类型:参数像是一个占位符。当方法被调用时,传递值给参数。这个值被称为实参或变量。参数列表是指方法的参数类型、顺序和参数的个数。参数是可选的,方法可以不包含任何参数。

形势参数:在方法被调用时用于接受外界的数据

实参:调用方法时实际传给方法的数据

方法体:方法体包含具体的语句,定义该方法的功能

break 和 return 的区别

break 跳出switch,结束循环

return 代表方法结束 返回值要与返回值类型相同

异常抛出

//main 方法

public static void main(String[] args) {

}

/*

修饰符 返回值类型 方法名(....){

方法体

return 返回值;

}

*/

//return 结束方法 返回一个结果

public String sayHello(){

return "Hello,World";

}

public void hello(){

return;

}

public int max(int a,int b){

return a>b ? a: b;//三元运算符

}

方法调用:递归

调用方法:对象名.方法名(实参列表)

Java支持两种调用方法的方式,根据方法是否返回值来选择

当方法返回一个值的时候,方法调用通常被当做一个值。例如:

int larger = max(30,40);

如果方法返回值是void,方法调用一定是一条语句。

System.out.println("Hello,World!");

静态与非静态方法的调用

56694c924cc0ea0c33741dd5bbda7197.png

//同为静态或非静态都可以直接调用

//如果a为静态,b为非静态 a无法调用b

// static是 和类一起加载的

//非静态 的 b是类实例化之后才存在 所以相当于存在的调用非存在的,不成立

public static void a(){

//b();

}

//b是类实例化之后才存在

public void b(){

}

值传递

解释:实参传递给形参的是值 形参和实参在内存上是两个独立的变量 对形参做任何修改不会影响实参

引用传递

实参传递给形参的是参数对于 堆内存上的引用地址 实参和 形参在内存上指向 了同一块区域 对形参的修改会影响实参

类与对象的关系

类是一种抽象的数据类型,它是对某一类事物整体描述/定义,但是并不能代表某一个具体的事物

动物、植物、手机......

Person类、Pet类、Car类等,这些类都是用来描述/定义某一类具体的事物应该具备的特点和行为

对象是抽象概念的具体实例

张三就是人的一个具体实例,张三家里的旺财是狗就是狗的一个具体实例

能够体现出特点,展现出功能的是具体的实例,而不是一个抽象的概念

创建与初始化对象

使用new关键字

使用new关键字创建的时候,除了分配内存空间之外,还会给创建好的对象进行默认的初始化 以及对类中构造器的调用

类中的构造器也成为构造方法,是在进行创建对象的时候必须要调用的。并且构造器有以下两个特点:

必须和类的名字相同

必须没有返回类型,也不能写void

构造器必须要掌握

e8ae7d4558c8074b6fd92e593321f434.png

a85884df90d3cfbcffbf13ed70538b50.png

//alt+insert 生成构造体

构造器:

1.和类名相同

2.没有返回值

作用:

1.new 本质在调用构造方法

2.初始化对象的值

注意点:

1.定义了有参构造之后,如果想使用无参构造,显示的定义一个无参的构造

小结

/*

1.类与对象

类是一个模版:抽象 对象是一个具体的实例

2.方法

定义、调用

3.对象的引用

引用类型: 基本类型(8)

对象是通过引用来操作的: 栈--->堆

4.属性: 字段Field 成员变量

默认初始化:

数字 0 0.0

char: u0000

boolean: false

引用: null

修饰符 属性类型 属性名 = 属性值

5.方法:

- 必须使用new 关键字创造对象, 构造器 Person Murray = new Person();

- 对象的属性 Murray.name

- 对象的方法 Murray.eat()

6.类:

静态的方法 属性

动态的方法 方法

*/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值