7月18 学习笔记

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值