当前位置: 首页 > article >正文

0基础学Java之Day09(上午完整版)

一、静态方法

理解:特定功能的代码块 好处:解决代码的冗余

    语法结构:
        访问修饰符 static void 方法名(参数列表){
            ...代码块...
        }
    
    分类:
        无参数无返回值的方法
        带参数的方法
        带返回值的方法
        
    知识点:无参数无返回值的方法
    语法结构:
        public static void 方法名(){
            ...代码块...
        }
        
    注意:
        1.方法写在类里面
        2.方法与方法之间是平级关系(不能在一个方法里声明另外一个方法)
        3.方法不被调用,就是个摆设
        4.静态方法通过类名调用
        5.同一个类中的多个静态方法调用可以不使用类名
        
    需求1:模拟lol的功能
    需求2:设计一个方法,打印三角形
public static void main(String[] args){
        
        //调用方法
        //Test01.run();
        //Test01.play();
        //Test01.run();
        
        //调用方法
        run();
        play();
        run();
        
        printStar();
        printStar();
    }
    
    public static void printStar(){
        for(int i = 0;i<5;i++){
            for(int j = 0;j<=i;j++){
                System.out.print("*");
            }
            System.out.println();
        }
    }
    
    public static void run(){
        System.out.println("风骚的走位 -- 100行");
    }
    
    public static void play(){
        System.out.println("发技能 -- 1200行");
    }
    
}

二、带参数的方法

知识点: 带参数的方法 语法结构: public static void 方法名(数据类型 参数名,数据类型 参数名,...){ ...代码块... }

    注意:
        1.形式参数 - 形参:在方法声明时规定的参数
        2.实际参数 - 实参:调用方法时传入的实际数据
        3.形参必须规定类型
        4.实参类型必须与形参类型兼容
        5.形参和实参可以有多个,用逗号分隔
        
    需求1:设计一个方法,打印三角形,三角形的行数由调用方指定
    优化需求:设计一个方法,打印三角形,三角形的行数和内容由调用方指定
    
    需求2:设计一个方法,传入两个int值,比较大小        
public static void main(String[] args){ 
    printStar(3,"$");
    printStar(5,"%");
    
    getMax(10,20);
}
​
public static void getMax(int a,int b){
    int max = (a>b)?a:b;
    System.out.println(max);
}
​
public static void printStar(int num,String str){
    for(int i = 0;i<num;i++){
        for(int j = 0;j<=i;j++){
            System.out.print(str);
        }
        System.out.println();
    }
}

三、带返回值的方法

语法结构: public static 返回值的数据类型 方法名([数据类型 参数名,数据类型 参数名,...]){ ...代码块... return 数据;//1.结束当前方法; 2.将数据返回给调用方 }

    注意:
        1.参数 - 理解:调用方法时,将数据传入到方法内部
        2.返回值 - 理解:方法执行完毕时,返回给调用方数据
        3.方法声明时规定返回值类型
        4.return后接的数据必须和方法声明时返回值的类型兼容
        5.返回值只能是一个
        6.方法功能的单一性
        7.局部变量:方法里的变量

    需求:设计一个方法,传入两个int值,比较大小
    
    经验 - 编写一个方法:
        1.考虑方法名 -- 见名知意
        2.考虑参数
            是否有参数?
            有几个参数?
            参数的类型是什么?
        3.考虑返回值
            是否有返回值?
            返回值的类型是什么?          
public static void main(String[] args){
        int max=getMax(10,20);
        System.out.println(max);
    }
    
    public static int getMax(int a,int b){
        int max=(a>b)?a:b;
        return max;
    }

四、扩展

扩展 - 命名法: 帕斯卡命名法 - 大驼峰命名法 理解:多个单词首字母大写 作用:类 ps:public class HelloWorld{}

小驼峰命名法: 理解:除了第一个单词,其余单词首字母大写 作用:方法、变量 ps:public static int getMax(int a,int b){}

五、方法的递归

理解:递归是一种思想,方法调用方法自身 经验: 1.找规律:方法何时调用方法自身 2.找出口:什么时候结束掉方法

    需求:设计一个方法,传入int类型的n,计算出n的阶乘
    分析:
        5! = 1*2*3*4*5  -> 5! = 4!*5
        4! = 1*2*3*4    -> 4! = 3!*4
        3! = 1*2*3      -> 3! = 2!*3
        2! = 1*2        -> 2! = 1!*2
        1! = 1          -> 1! = 1
        
        找规律:n! = (n-1)! * n
        找出口:1! = 1
public static void main(String[] args){
        
        int num = method(5);
        System.out.println(num);
    }
    
    public static int method(int n){
        if(n != 1){
            return method(n-1)*n;
        }else{
            return 1;
        }
    }

需求:有一对兔子,从出生后第3个月起每个月都生一对兔子, 小兔子长到第三个月后每个月又生一对兔子, 假如兔子都不死,问第b个月的兔子对数为多少? 设计一个方法,传入int类型的n,返回兔子当月的对数

分析: 找规律:当月兔子对数 = 上个月 + 上上个月 找出口:1月和2月都是1对兔子

1、1、2、3、5、8、13、.... -> 斐波那契数列/黄金分割数列

public static void main(String[] args){
        
        int num = getRabbit(5);
        System.out.println(num);
    }
    
    public static int getRabbit(int n){
        if(n==1 || n==2){
            return 1;
        }else{
            return getRabbit(n-1) + getRabbit(n-2);
        }
    }

http://www.kler.cn/news/355023.html

相关文章:

  • 从零开始了解云WAF,您的网站安全升级指南
  • 直播美颜平台架构设计:基于视频美颜SDK的开发实践
  • 微信小程序引入组件教程
  • 通过比较list与vector在简单模拟实现时的不同进一步理解STL的底层
  • 标准C库总结
  • 第1节 入门
  • WLAN技术
  • 【前端】Matter:基础概念与入门
  • 基于51单片机的PID直流电机调速系统(程序+Proteus仿真+报告+原理图)
  • Rider + xmake DX12 开发环境
  • 【AAOS】Android Automotive 15模拟器源码下载及编译
  • tensorRT安装详解(linux与windows)
  • Redis总结(官方文档解读)
  • 【工具篇】MLU运行XInference部署手册
  • 安全见闻笔记
  • 春日学习伴侣:Spring Boot答疑平台
  • 03.顺序表实现
  • JS_用发布订阅模式解耦
  • 云手机:社交平台运营的热门工具
  • 王爽汇编语言第三版实验1