首页 > 编程语言 >【狂神说Java】Java零基础学习笔记-Java方法

【狂神说Java】Java零基础学习笔记-Java方法

时间:2023-08-06 18:11:57浏览次数:40  
标签:Java int void 笔记 result 狂神 方法 public

【狂神说Java】Java零基础学习笔记-Java方法

Java方法01:何谓方法?

  • System.out.println(),那么它是什么呢?

  • Java方法是语句的集合,它们在一起执行一个功能。

    • 方法是解决一类问题的步骤的有序组合
    • 方法包含于类或对象中
    • 方法在程序中被创建,在其他地方被引用
  • 设计方法的原则:方法的本意是功能块,就是实现某个功能的语句块的集合。我们设计方法的时候,最好保持方法的原子性,就是一个方法只完成1个功能,这样利于我们后期的扩展。

  • 回顾:方法的命名规则?

    驼峰命名规则

package com.dawnsmile.method;

public class Demo01 {
    //main方法
    public static void main(String[] args) {
        //实际参数:实际调用传递给他的参数
        int sum = add(1,2);
        System.out.println(sum);
        System.out.println("====================");

        test();
    }

    //加法
    //形式参数,用来定义作用的
    public static int add(int a,int b){
        return a+b;
    }

    //test
    public static void test(){
        for (int i = 0; i <= 1000; i++) {
            if (i%5==0){
                System.out.print(i+"\t");
            }
            if (i%(5*3)==0){ //每行
                System.out.println();
                //System.out.println("\n");
            }
        }
    }
}

3
====================
0	
5	10	15	
20	25	30	
... ... ...
980	985	990	
995	1000	

Java方法02:方法的定义

  • Java的方法类似于其它语言的函数,是一段用来完成特定功能的代码片段,一般情况下,定义一个方法包含以下语法:
  • 方法包含一个方法头和一个方法体。下面是一个方法的所有部分:
    • 修饰符:修饰符,这是可选的,告诉编译器如何调用该方法。定义了该方法的访问类型。
    • 返回值类型:方法可能会返回值。returnValueType是方法返回值的数据类型。有些方法执行所需的操作,但没有返回值。在这种情况下,returnValueType是关键字void。
    • 方法名:是方法的实际名称。方法名和参数表共同构成方法签名。
    • 参数类型:参数像是一个占位符。当方法被调用时,传递值给参数。这个值被称为实参或变量。参数列表是指力法的参数类型、顺序和参数的个数。参数是可选的,方法可以不包含任何参数。
      • 形式参数:在方法被调用时用于接收外界输入的数据。
      • 实参:调用方法时实际传给方法的数据。
    • 方法体:方法体包含具体的语句,定义该方法的功能。
修饰符 返回值类型 方法名(参数类型参数名){
    ...
    方法体
    ...
    return 返回值;
}

方法调用

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

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

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

    int larger = max(30,40);
    
  • 如果方法返回值是void,方法调用一定是一条语句。

    System.out.println( "Hello,kuangshen! ");
    
  • 课后拓展了解:值传递(Java) 和 引用传递

package com.dawnsmile.method;

public class Demo02 {
    public static void main(String[] args) {
        int max = max(10,20);
        System.out.println(max);
    }

    //比大小
    public static int max(int num1,int num2){
        int result = 0;

        if (num1==num2){
            System.out.println("num1==num2");
            return 0; //终止方法
        }

        if (num1>num2){
            result = num1;
        }else {
            result = num2;
        }

        return result;
    }
}

20

Java方法03:方法的重载

  • 重载就是在一个类中,有相同的函数名称,但形参不同的函数
  • 方法的重载的规则:
    • 方法名称必须相同。
    • 参数列表必须不同(个数不同、或类型不同、参数排列顺序不同等)。
    • 方法的返回类型可以相同也可以不相同。
    • 仅仅返回类型不同不足以成为方法的重载。
  • 实现理论:
    • 方法名称相同时,编译器会根据调用方法的参数个数、参数类型等去逐个匹配,以选择对应的方法,如果匹配失败,则编译器报错。
package com.dawnsmile.method;

public class Demo02 {
    public static void main(String[] args) {
        int max1 = max(10,20);
        System.out.println(max1);
        System.out.println("====================");

        double max2 = max(10.0,20.0);
        System.out.println(max2);
    }

    //比大小(int)
    public static int max(int num1,int num2){
        int result = 0;

        if (num1==num2){
            System.out.println("num1==num2");
            return 0; //终止方法
        }

        if (num1>num2){
            result = num1;
        }else {
            result = num2;
        }

        return result;
    }

    //比大小(double)
    public static double max(double num1,double num2){
        double result = 0;

        if (num1==num2){
            System.out.println("num1==num2");
            return 0; //终止方法
        }

        if (num1>num2){
            result = num1;
        }else {
            result = num2;
        }

        return result;
    }
}

20
====================
20.0

Java方法04:命令行传参

  • 有时候你希望运行一个程序时候再传递给它消息。这要靠传递命令行参数给main()函数实现。

    public class CommandLine {
        public static void main(String args[]){
            for(int i=0; i<args.length; i++){
                System.out.println("args[" + i + "]: " +args[i]);
            }
        }
    }
    
Microsoft Windows [版本 10.0.22631.2048]
(c) Microsoft Corporation。保留所有权利。

D:\Java\demo\基础语法\src\com\dawnsmile\method>javac Demo03.java

D:\Java\demo\基础语法\src\com\dawnsmile\method>cd..

D:\Java\demo\基础语法\src\com\dawnsmile>cd..

D:\Java\demo\基础语法\src\com>cd..

D:\Java\demo\基础语法\src>java com.dawnsmile.method.Demo03

D:\Java\demo\基础语法\src>java com.dawnsmile.method.Demo03 this is dawnsmile
args[0]: this
args[1]: is
args[2]: dawnsmile

D:\Java\demo\基础语法\src>

Java方法05:可变参数

  • JDK 1.5开始,Java支持传递同类型的可变参数给一个方法。

  • 在方法声明中,在指定参数类型后加一个省略号(.…)。

  • 一个方法中只能指定一个可变参数,它必须是方法的最后一个参数。任何普通的参数必须在它之前声明。

    public static void printMax( double... numbers) {
        if (numbers. length == 0) {
            System.out.println("No argument passed");
            return;
        }
        
        double result = numbers[0];
        
        //排序!
        for (int i = 1; i < numbers.length; i++){
            if (numbers[i] > result) {
                result = numbers[i];
            }
        }
        System.out.println("The max value is " + result);
    }
    
package com.dawnsmile.method;

public class Demo04 {
    public static void main(String[] args) {
        Demo04 demo04 = new Demo04();
        demo04.test(1);
        //demo04.test(1,2,3,4,45,5);
        System.out.println("====================");

        //调用可变参数的方法
        printMax(34,3,3,2,56.5);
        printMax(new double[]{1,2,3});
    }

    public void method(){}
    public void method(int i){}
    public void method(int i,int i2){}
    public void method(int i,double i2){}

    public void test(int... i){
    //public void test(int x,int... i){
        System.out.println(i[0]);
    }

    public static void printMax( double... numbers) {
        if (numbers. length == 0) {
            System.out.println("No argument passed");
            return;
        }

        double result = numbers[0];

        //排序!
        for (int i = 1; i < numbers.length; i++){
            if (numbers[i] > result) {
                result = numbers[i];
            }
        }
        System.out.println("The max value is " + result);
    }
}

1
====================
The max value is 56.5
The max value is 3.0

Java方法06:递归

  • A方法调用B方法,我们很容易理解!
  • 递归就是:A方法调用A方法!就是自己调用自己
  • 利用递归可以用简单的程序来解决一些复杂的问题。它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归策略只需少量的程序就可描述出解题过程所需要的多次重复计算,大大地减少了程序的代码量。递归的能力在于用有限的语句来定义对象的无限集合。
  • 递归结构包括两个部分:
    • 递归头:什么时候不调用自身方法。如果没有头,将陷入死循环。
    • 递归体:什么时候需要调用自身方法。
package com.dawnsmile.method;

public class Demo05 {
    public static void main(String[] args) {
        Demo05 test = new Demo05();
        test.test();
    }

    public void test(){
        test();
    }
}

package com.dawnsmile.method;

public class Demo06 {
    //递归思想
    public static void main(String[] args) {
        System.out.println(f(5));
    }

    //1! 1
    //2! 2*1
    //3! 3*2*1
    //5! 5*4*3*2*1

    //2! 2*f(1)
    //3! 3*f(2) f(2)=2*f(1)

    public static int f(int n){
        if (n==1){
            return 1;
        }else {
            return n*f(n-1);
        }
    }
}

120

image

【【狂神说Java】Java零基础学习视频通俗易懂】https://www.bilibili.com/video/BV12J41137hu?p=45&vd_source=fd5defd6aaa826e3b6e0c06073353e32

标签:Java,int,void,笔记,result,狂神,方法,public
From: https://www.cnblogs.com/Ge-sun-smile/p/17609687.html

相关文章

  • 基于Java开发的校园论坛系统
    随着高校精神文化建设规模的不断深入发展,建设和发展校园论坛系统成为提升校园内部各项文化交流的重要手段。面对校园文化急需一款适合自己特色的论坛系统,高校管理人员既有迫切需要提升师生文化交流的愿望,也有管理大量论坛交流信息的巨大压力。校园论坛是师生的公共论坛,弘扬的青春积......
  • 博弈论笔记
    博弈论公平组合游戏公平组合游戏(ImpartialGame)的定义如下:\(\bullet\)游戏有两个人参与,二者轮流做出决策,双方均知道游戏的完整信息;\(\bullet\)任意一个游戏者在某一确定状态可以作出的决策集合只与当前的状态有关,而与游戏者无关;\(\bullet\)游戏中的同一个状态不可能多次......
  • 老杜 JavaWeb 讲解(十九) ——Filter过滤器
    (十七)Filter过滤器Filter过滤器当前的OA项目存在什么缺陷?DeptServlet、EmpServlet、OrderServlet。每一个Servlet都是处理自己相关的业务。在这些Servlet执行之前都是需要判断用户是否登录了。如果用户登录了,可以继续操作,如果没有登录,需要用户登录。这段判断用户是否登录......
  • 全能指挥官:玩转JavaScript命令模式,让代码听你的话!
    前言系列首发于公众号『非同质前端札记』,若不想错过更多精彩内容,请“星标”一下,敬请关注公众号最新消息。全能指挥官:玩转JavaScript命令模式,让代码听你的话!命令模式的含义命令模式指的是一个执行某些特定的指令。命令模式的示例demo://命令接口classCommand{execute(){......
  • Java中的Stream API简述
    (StreamAPI)StreamAPI概述Java8中有两大最为重要的改变。第一个是Lambda表达式;另外一个则是StreamAPI。StreamAPI(java.util.stream)把真正的函数式编程风格引入到Java中。这是目前为止对Java类库最好的补充,因为StreamAPI可以极大提供Java程序员的生产力,让程序员写......
  • Java中关于时间日期的API
    (Java中关于时间日期的API)JDK8之前日期和时间的API1.java.util.Date类1.1两个构造器的使用构造器一:Date():创建一个对应当前时间的Date对象Datedate1=newDate();System.out.println(date1.toString());//SatFeb1616:35:31GMT+08:002019......
  • 基于JAVA的房屋租赁及其管理系统
    本房屋租赁及其管理系统是针对目前房屋租赁管理的实际需求,从实际工作出发,对过去的房屋租赁管理系统存在的问题进行分析,结合计算机系统的结构、概念、模型、原理、方法,在计算机各种优势的情况下,采用目前最流行的B/S结构和java中流行的MVC三层设计模式和myeclipse编辑器、sqlserver数......
  • Java8时间与Mysql时间
    对应版本Java8里面新出来了一些API,LocalDate、LocalTime、LocalDateTime非常好用如果想要在JDBC中,使用Java8的日期LocalDate、LocalDateTime,则必须要求数据库驱动的版本不能低于4.2上面说了,数据库驱动的版本不能低于4.2,如何判断呢?直接打开数据库驱动jar,里面有个META-INF/MA......
  • 系统架构设计师笔记第45期:SOA参考架构
    SOA(Service-OrientedArchitecture,面向服务的架构)是一种软件设计和开发的方法论,它将软件系统划分为一组相互协作的服务。下面是一个示例的SOA参考架构,展示了不同服务之间的关系和功能:服务提供者(ServiceProvider):这些服务提供者负责实现和提供具体的功能服务,如用户管理服务、支付服......
  • VIM进阶学习笔记(二) 总结复习vim的移动光标导航
    惊闻vim作者BramMoolenaar去世,享年62岁。唉,这vim还没学会,太遗憾了。。。几十年致力于这么伟大的工具开发,令人敬佩。致敬。 个人从vim大致入门后,使用了基本配置vim操作体验来看,vim是在Linux等命令行界面,以及鼠标还未普及的情况下,使得通过纯键盘操作达到十分便捷的强大编......