JAVA面向对象
目录
JAVA面向对象
简介
面向对象三大特征
封装
成员方法
返回值
主方法
递归
思维导图:
简介
java是一门面向对象的编程语言,在JAVA中,万事万物皆对象。
那么面向对象是什么呢?
这就要介绍两个东西了:面向过程,面向对象。
面向过程:面向过程就是分析出实现需求需要的步骤,通过一些方法一步一步实现。
面向对象(行为化):把整个需求的按照特点,功能划分,将这些存在共性的部分封装成类 (类实例化之后才是对象),让对象去解决问题。
举一个例子: 七夕,你想送你女朋友一个包。
面向对象的思想:先找个店,再买个包,不管是商家,还是包都是现实中真实存在的事务 在这个商店或者包我们就可以称之为对象,在整个的你去买包或商家买包,我们忽略 了一个过程,包是怎么加工的。
面向过程:找原材料,自己切割,自己缝制,每一个工序都自己干,这就是过程 其实,高级的编程语言,会向着人的思考靠近 面向对象是更高级的抽象,是对现实世界的映射。
String Scanner--创建对象的过程。从来没有考虑过Scanner为什么能键盘输入
这就是别人给我们创建对象,事实上我们也能自己创建对象,再开发中,基本上我们会大量的自己创建自己的对象。
面向对象三大特征
在JAVA中,面向对象有三大特征:
1.封装
2.继承
3.多态
4.抽象(如果别人问有四个,就把他带上)
封装
1.代码层面2.思想层面*(最难的,最重要的)
如果把变量直接声明在类里:成员变量(全局变量)
如果把变量声明在某个方法里:局部变量,在某一个范围内才好使。
成员方法
方法名不能重复
如果一个方法有static
要调用一个非static得方法
就只能创建对象,使用对象,方法得形式使用
自己调自己:递归
递归问题:StackOverflowError 栈溢出(内存溢出)
开发中,到底要不要用递归?如果用的话,要注意什么?
属性:
Python学习笔记(9),Python面向对象高级特性2 — 定制类和多重继承
pdf
0星
超过10%的资源
65KB
下载
创建对象的过程,类的实例化的过程,对象又叫做类的一个实例
我们创建了一个Car类的对象car1,这个car1就是对象的名。其实这个car1就是个标识符。
对象名的命名规则:小驼峰
创建对象的语法:类名 对象名 = new 类名( );
成员方法就相当于js里的函数
public void run(){
System.out.println("我在这里");
}
public------访问权限修饰符
void---------代表没有返回值
run( )-------方法名(标识符)
{ }-----------方法体(这个方法要干啥)
( )-----------用于传参数
ps:参数可以有多个,中间用逗号隔开,Java中的传参需要明确数据类型
在声明方法时,括号里的参数:形式参数(形参),可以当做局部变量使用
在调用方法时,形参是在声明处,实参是在调用处
返回值
boolean、int、基本数据类型都属于返回值类型
方法进行结束时,需要返回一个返回值,返回值的类型就是你在建立方法时设置的基本数据类型
返回值使用:return xxx; 类型要匹配
有返回值的方法在执行后会得到一个具体的值,这个值可以存下来
那么到底什么时候要有返回值,什么时候没有返回值?
其实开发中,大部分的方法都有返回值,void里也可以填写返回值。
return关键字
return关键字终止方法继续执行
返回方法的返回值
主方法
main方法就是主方法,除了main其他都不可执行,只有main可以执行
递归
递归是什么?
简而言之:递归就是一个方法之中,自己调用自己。
实现递归的直观展示:斐波那契数列
斐波那契数列:
下一个数字是前两个数字之和:
eg:0,1,1,2,3,5,8...
我们知道除了0和1,第number个数字等于第number-1个数和第number-2个数的和
数据结构课设:超市选址问题
application/msword
0星
超过10%的资源
102KB
下载
运用递归的方式:
public int feibonaqie(int number){
if(number>1){
return feibonaqie(number-1)+feibonaqie(number-2);
}else {
return number;
}
}
我们再来看一个例子:求阶层
运用循环的方法:
public int jc(int number){
int result=1;
for (int i = 1; i <=number ; i++) {
result*=i;//循环的方法
}
return result;
}
运用递归的方式:
public int jc(int number){
if(number<=1){//递归的方法;
return 1;
}
return number*jc(number-1);
}