2022-7-18 学习日记(9th day)面向对象

本文介绍了JAVA的面向对象特性,包括封装、继承、多态和抽象。详细讲解了成员方法、返回值、主方法以及递归的概念,并通过实例解释了如何在JAVA中实现递归。同时,通过斐波那契数列和阶乘的例子展示了递归的应用。
摘要由CSDN通过智能技术生成

JAVA面向对象

目录

JAVA面向对象

简介 

面向对象三大特征 

 封装

成员方法

返回值

主方法

递归

思维导图:


简介 

java是一门面向对象的编程语言,在JAVA中,万事万物皆对象。

那么面向对象是什么呢?

这就要介绍两个东西了:面向过程,面向对象。

面向过程:面向过程就是分析出实现需求需要的步骤,通过一些方法一步一步实现。

面向对象(行为化):把整个需求的按照特点,功能划分,将这些存在共性的部分封装成类                                 (类实例化之后才是对象),让对象去解决问题。

举一个例子: 七夕,你想送你女朋友一个包。

        面向对象的思想:先找个店,再买个包,不管是商家,还是包都是现实中真实存在的事务 在这个商店或者包我们就可以称之为对象,在整个的你去买包或商家买包,我们忽略 了一个过程,包是怎么加工的。

        面向过程:找原材料,自己切割,自己缝制,每一个工序都自己干,这就是过程 其实,高级的编程语言,会向着人的思考靠近 面向对象是更高级的抽象,是对现实世界的映射。

        String Scanner--创建对象的过程。从来没有考虑过Scanner为什么能键盘输入

        这就是别人给我们创建对象,事实上我们也能自己创建对象,再开发中,基本上我们会大量的自己创建自己的对象。

面向对象三大特征 

在JAVA中,面向对象有三大特征:

1.封装

2.继承

3.多态

4.抽象(如果别人问有四个,就把他带上)

 封装

1.代码层面2.思想层面*(最难的,最重要的)

如果把变量直接声明在类里:成员变量(全局变量)

如果把变量声明在某个方法里:局部变量,在某一个范围内才好使。

成员方法

        方法名不能重复

        如果一个方法有static
        要调用一个非static得方法
        就只能创建对象,使用对象,方法得形式使用
        自己调自己:递归
        递归问题:StackOverflowError 栈溢出(内存溢出)
        开发中,到底要不要用递归?如果用的话,要注意什么?

属性:

创建对象的过程,类的实例化的过程,对象又叫做类的一个实例

我们创建了一个Car类的对象car1,这个car1就是对象的名。其实这个car1就是个标识符。

对象名的命名规则:小驼峰

创建对象的语法:类名 对象名 = new 类名( );

成员方法就相当于js里的函数

public void run(){
    System.out.println("我在这里");
}

public------访问权限修饰符  

void---------代表没有返回值   

run( )-------方法名(标识符)  

{ }-----------方法体(这个方法要干啥)  

( )-----------用于传参数

ps:参数可以有多个,中间用逗号隔开,Java中的传参需要明确数据类型

     在声明方法时,括号里的参数:形式参数(形参),可以当做局部变量使用

     在调用方法时,形参是在声明处,实参是在调用处

返回值

boolean、int、基本数据类型都属于返回值类型

方法进行结束时,需要返回一个返回值,返回值的类型就是你在建立方法时设置的基本数据类型

返回值使用:return  xxx; 类型要匹配

有返回值的方法在执行后会得到一个具体的值,这个值可以存下来

那么到底什么时候要有返回值,什么时候没有返回值?

其实开发中,大部分的方法都有返回值,void里也可以填写返回值。

return关键字

  1. return关键字终止方法继续执行
  2. 返回方法的返回值

主方法

main方法就是主方法,除了main其他都不可执行,只有main可以执行

递归

递归是什么?

简而言之:递归就是一个方法之中,自己调用自己。

实现递归的直观展示:斐波那契数列

斐波那契数列:

        下一个数字是前两个数字之和:

        eg:0,1,1,2,3,5,8...

        我们知道除了0和1,第number个数字等于第number-1个数和第number-2个数的和

运用递归的方式:

    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);
    }

思维导图:

 

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值