首页 > 编程语言 >java---方法

java---方法

时间:2023-09-14 21:09:32浏览次数:58  
标签:java int void --- static 返回值 方法 public

方法对一段功能代码进行集中管理,每个同学在某一时刻只做一件事情。单一职责。

5.1 方法的分类

构造方法

在创建对象时自动调用

成员方法

使用对象进行调用

静态方法

static 使用类名进行调用

() -->代表的就是方法

5.2 方法的创建

语法:
访问修饰符  [static]   返回值类型  方法名([形式参数]){
		方法体
}

java---方法_方法名

返回值类型

分为两种

1、void 没有返回值

2、有返回值

2.1、八大基本数据类型   int  double  float   long   byte   short   char   boolean

2.2、引用数据类型 (所有的类都被称之为类型) String

方法名:自己命名,与变量的命名规则一样

一个变量名是否合法的三条规则


1、java中的变量名是由【A-Z】【a-z】字母,【0-9】数字,_下划线,$符组成


2、变量名的首字符不能以数字开始,以习惯性的做法都是以字母开头


3、不能出现java的关键字  public class static void  int double char boolean byte short long float  

一个变量名是否合理的规则


4、如果变量名由两个或多个单词组成,使用**驼峰命名法**,  

对变量,方法的名称要求第一个单词的首字符小写,第二个单词的首字符大写,比如: firstNum,

如果是类名要求所有单词的首字符都大写 比如:HelloWorld


5、变量名要具体一定的可读性,见名知义. diYiGeShu

[形式参数]:

这里的参数就是定义变量,多个形式参数之间用逗号分隔,方法代表着一个动作,你思考一下,只要是有动作的事情都放在方法里-->动词

形式参数的变量用于接收调用处发送过来完成这个功能的数据的

5.3 按编写方式进行分类

  • 5.3.1 无返回值,无参数
    public [static] void 方法名(){ }
  • 5.3.2 有返回值,无参数
    public [static] 返回值类型 方法名(){ }
  • 5.3.3 无返回值,有参数
    public [ static] void 方法名([形式参数]){ }
  • 5.3.4 有返回值,有参数
    public [static] 返回值类型 方法名([形式参数]){ }

5.4 static 静态方法

静态方法在类加载的时候就会对方法进行加载,方法要加载过才能执行。

成员方法在创建对象的时候才进行加载,加载时间后于静态方法,所以静态方法中不能调用成员方法。

方法要写到public class 类名{ 写方法 }。

不要写到 public static void main(String[] args){这里面不要写}

5.4.1 无返回值,无参数案例

public static void main(String[] args) {

       //调用

       printNum1_10();

      

    }

/*

    打印1-10之间所有的数

    * 方法的定义

    * 方法定义出来不会自动执行


    访问修饰符 static void  方法名(){

           打印1-10之间所有的数

    }

    * */

    public static  void printNum1_10(){

        for (int i = 1; i <= 10 ; i++) {

            System.out.println(i);

        }

    }
public class Demo5 {

    public static void main(String[] args) {

        printNum1_10();

        System.out.println("程序结束");

    }


    /**

     *

     * 访问修饰符 [static] 返回值类型 方法名(){

     *      打印1-10之间所有的数

     * }

     */

    public static void printNum1_10(){

        for (int i = 1; i <= 10; i++) {

            System.out.println(i);

            if(i==5){

                //break;//如果是break跳出当前循环最后的方法执行结束一定会打印,如果使用return 方法执行结束不会打印

                return;//return如果使用在无返回值的方法中return;结束当前方法的执行

            }

        }

        System.out.println("方法执行结束");

    }

}

5.4.2 有返回值,无参数

使用return

语法: return 返回的数据; --> 将数据返回到调用处 结束当前方法的执行,一次只能返回一个结果

public static void main(String[] args) {

       //调用

      //  printNum1_10();

        //程序调试F8 单步执行  F7 逐条执行

       int sum = addSum();


        System.out.println("调用方法得到的结果:"+sum);

    }

/*

  计算1-10之间所有数的和

    有返回值无参数的方法

     */

    public static int addSum(){

        int sum=0;

        for (int i = 1; i <= 10; i++) {

            sum+=i;

        }

        return sum;

    }

5.4.3 无返回值,有参数

import java.util.Scanner;


public class Main {

    public static void main(String[] args) {

        Scanner input=new Scanner(System.in);

        System.out.println("请输入一个数:");

        int num=input.nextInt();


        sumNum(num);  //100是一个具体的值   实际参数 调用方法程序就会进入到这个方法中去执行

    }


    /*

    * sumNum看成是在另外一台电脑上执行,另一台电脑无法操作

    * */

    public static void sumNum(int num){  //是一个变量的定义  形式参数


        int sum=0;

        for (int i = 1; i <= num; i++) {

            sum+=i;

        }

        System.out.println(sum);

    }


}

sumNum(100); 调用处小括号中传入的值叫实际参数

public static void sumNum(int num) 定义方法的语法这里小括号中的变量叫形式参数

执行流程就是将实际参数的值赋值给形式参数。并且,多个参数之间用逗号分隔,传入的类型位置要一一对应

问题,写一个方法来求圆的面积 PIXrXr;

import java.util.Scanner;


public class Main2 {

    public static void main(String[] args) {

        Scanner input = new Scanner(System.in);

        System.out.println("请输入一个半径:");

        int r=input.nextInt();

        area(r,3.14);

    }


    public static void area(int r,double pi){

        System.out.println(r*r*pi);

    }

}
注意:
area(r,3.14);
public static void area(int r,double pi)
 多个参数之间用逗号分隔,类型,位置,数量都要一一对应

5.4.4 有返回值,有参数

import java.util.Scanner;


public class Main3 {

    public static void main(String[] args) {

        Scanner input = new Scanner(System.in);

        System.out.println("请输入一个数:");

        int num=input.nextInt();


        int result=sumNum(num);//sumNum(num);[调用方法执行]和sumNum(int num)[定义方法]不是同一个变量,num里的值赋值给定义方法这里的num变量

        System.out.println(result);

    }

    public static int sumNum(int num){  //是一个变量的定义  形式参数


        int sum=0;

        for (int i = 1; i <= num; i++) {

            sum+=i;

        }

        return sum;

    }

}

5.5 方法的好处

1、方法可以让以前零乱的代码,变得整齐

2、冗余代码可以重复利用

题目1: 求1-10之间所有数的积,并打印结果,定义方法实现

题目2:统计1-输入的一个数的区间中,能同时被3和5整除的数的个数

题目3:输入一个年份,月份,日期,计算这个日期是当年的第几天 定义方法实现


import java.util.Scanner;


public class Demo5 {

    //1990 1 1 星期一

    public static void main(String[] args) {

        Scanner input = new Scanner(System.in);

        System.out.println("请输入一个年份:");

        int year = input.nextInt();

        System.out.println("请输入一个月份:");

        int month = input.nextInt();

        //算输入的日期到1990-1-1之间的天数总和

        int sum=getSum(year,month);

        //求输入的日期的月份有多少天

        int day = getMonthDay(month,year);

        //显示日历结果

        show(sum,day);


    }


    public static int getSum(int year,int month){

        int sum = 0;

        //1、求整年的总天数

        for (int i = 1990; i < year; i++) {

            sum+=getYearDay(i,366,365);

        }

        //2、求今年整月的总天数

        for (int i = 1; i < month; i++) {

            sum+=getMonthDay(i,year);

        }

        //当前日期到1990-1-1的总天数

        return sum;

    }


    public static void show(int sum,int day){

        int count = 0;

        System.out.println("一\t二\t三\t四\t五\t六\t日");

        for (int i = 1; i <= sum % 7; i++) {

            System.out.print(" \t");

            count++;

        }


        for (int i = 1; i <= day; i++) {

            System.out.print(i + "\t");

            count++;

            if (count % 7 == 0) {

                System.out.println();

            }

        }

    }


    /**

     * 判断年是平年还是闰年,根据年份返回不同的结果

     * @param year    年

     * @param result1 结果1

     * @param result2 结果2

     * @return  根据年的判断从结果1和结果2中返回其中的一个

     */

    public static int getYearDay(int year,int result1,int result2){

        if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) {

            return result1;

        } else {

            return result2;

        }

    }


    /**

     * 判断month是几月份,返回对应的天数,year的作用,是在2月的时候用于判断闰年平年的天数

     * @param month  月份

     * @param year  年份

     * @return  月份的天数

     */

    public static int getMonthDay(int month,int year){

        switch (month) {

            case 1:

            case 3:

            case 5:

            case 7:

            case 8:

            case 10:

            case 12:

                return 31;  //因为return在方法中有终止方法执行的效果,所以不需要break


            case 4:

            case 6:

            case 9:

            case 11:

                return  30;


            default:

                //在该方法又调用了getYearDay() ,getYearDay方法有返回值,

                // 这里直接return 代表将getYearDay方法的值直接返回到该方法的调用处

                 return getYearDay(year,29,28);


        }

    }

}

谢谢大家,今天的知识总结就到这啦!希望大家多多支持,我在很多平台都有博客论文,也希望大家多多照顾,栓Q了!!!

标签:java,int,void,---,static,返回值,方法,public
From: https://blog.51cto.com/u_16261728/7473645

相关文章

  • Java数组遍历
    publicclassbianli{publicstaticvoidmain(String[]args){int[]arr={11,22,33,44,55};printArray(arr);}publicstaticvoidprintArray(int[]arr){System.out.print("[");......
  • 续集来了!我让 GPT-4 用 Laf 三分钟写了个完整的待办事项 App
    一觉醒来,GPT-4已经发布了!GPT-4实现了真正的多模态,可以把纸笔画的原型直接写出网页代码。读论文时还能理解插图含意。好消息是,ChatGPTPlus用户目前可以提前尝鲜GPT-4模型。作为高贵的Plus用户,这怎么能忍?立马打开ChatGPT切换到最新模型。一位Twitter网友经过测试发现......
  • 【230914-5】▲ABC中,C=2倍根号2,a>b,tanA+tanB=5,tanAtanB=6. 求:S△ABC=?
    ......
  • 【考后总结】9 月 CSP-S 模拟赛 4
    9.14CSP模拟38T1我是A题每个点坐标都至少有一维卡上界。那么按照哪一维卡上界分成\((A,v,w),(u,B,w),(u,v,C)\)三类,对于点\((x,y,z)\),如果会被第一类点删去,那么第一维就不需要考虑了,只需要满足\(y\)不大于所有\(w\)大于等于\(z\)的第一类点中\(v\)的最大值。......
  • Java学习_006_考试奖励
    需求:小明期末考试,小明的爸爸对他说,会根据他不同的期末考试成绩,送他不同的礼物,假如你可以控制小明的得分,请用程序实现小明到底该获得什么样的礼物,并在控制台输出。     奖励:95-100-----山地自行车一辆;  90-94------游乐场游玩一次;80-89----......
  • KVM02-tigerVNC安装使用
    4.安装配置tigerVNC[复制出来的文件必须是数字这个决定了之后vnc的监听端口]sudoyuminstalltigervnc*-ysudocp/usr/lib/systemd/system/[email protected]/usr/lib/systemd/system/vncserver@:2.servicesudovi/usr/lib/systemd/system/vncserver@:2.service修改......
  • HBase学习5(HBase java编程:创建项目,创建删除表,数据增删改查)
    1.准备工作1.1创建IDEAMaven项目其中名字为hbase_op,groupid为cn.itcast然后导入pom依赖<repositories><!--代码库--><repository><id>aliyun</id><url>http://maven.aliyun.com/nexus/content/groups/public/</url>&l......
  • 人大金仓-国产数据库--九五小庞
    1.人大金仓数据库官网介绍人大金仓专注数据库领域20余载,具备出色的数据库产品研发及服务能力。曾先后承担国家“863”、电子发展基金、信息安全专项、国家重点研发计划、“核高基”等重大课题研究。核心产品金仓数据库管理系统KingbaseES是具备先进水平的大型通用数据库。2018年......
  • 开启read_committed_snapshot 读快照隔离级别的方法
    --修改sqlserver数据库隔离级别--开启read_committed_snapshot 读快照隔离级别,推荐值是1:--可以解决sqlserver大多数无脑死锁现象selectname,is_read_committed_snapshot_onfromsys.databaseswherename='kingdee_prod'usemasterdeclare@dbnameassysnamedeclare@s......
  • 解决方法:ERROR: Could not install packages due to an EnvironmentError: [Errno 2]
    在使用windows系统用pip命令安装ipyparallel时,出现了这种错误:ERROR:CouldnotinstallpackagesduetoanEnvironmentError:[Errno2]Nosuchfileordirectory:'C:\Users\xxx\AppData\Local\Temp\pip-install-8bc4asmd\ipyparallel\ipyparallel-7.1.0.data/data/share/j......