方法基础知识

1.方法的定义及调用

  • 定义:可以完成特定功能的、相对独立的程序段

  • 方法定义在类体中,位置随意,方法体中不能再定义方法

  • 有返回值的话则至少有一个返回值

  • public class example3_1{//表示定义一个公开的类,名为MethodTest,因为是公开的类,
        static int square(int x)//[修饰符]  返回值类型  方法名 [(参数表)]{方法体;}
        {
            int s;
            s=x*x;
          return(s);
        }
        public static void main(String[] args)
        {
            int n=5;int result=square(n);
            System.out.println(result);
        }
        
    }

//有返回值的方法,其方法体至少有一条return语句

2.方法参数值传递

  • 参数传递:完成实际参数与形式参数的结合,例如:

  • //单向传递,调用方法,交换变量的值
    
    public class example3_2{
        static void swap(int x,int y)//类似c语言,不过java不用声明
            {
                int temp;//中间变量
                System.out.println("Befor Swappig");
                System.out.println("x="+x+" y="+y);
                temp=x;x=y;y=temp;
                System.out.println("After Swapping");
                System.out.println("x="+x+" y="+y);
            }
        public static void main (String[] args){
            int u=50,v=100;
            System.out.println("Before Calling");
            System.out.println("u="+u+" v="+v);
            swap(u,v);
            System.out.print("After Calling\n");//c语言的/n在java也是换行
            System.out.println("u="+u+" v="+v);
            
        }
    }

    //与c语言调用函数类似

    3.输入、输出基本类型数据

    • 输入:Scanner是一个类,可以使用该类创建一个对象reader:Scanner reader=new Scanner(System.in),然后对象reader调用nextBoolean()、nextByte()、nextShort()、nextFloat()、nextInt()、nextLong()、nextDouble()

      import java.util.Scanner;
      public class example3_3{
          public static void main (String[] args){
              System.out.println("请输入若干个数,每输入一个数回车确认");
              System.out.println("最后输入数学0结束输入操作");
              Scanner reader=new Scanner(System.in);
              double sum=0;
              int m=0;
              double x=reader.nextDouble();
              while(x!=0)
              {
                  m=m+1;
                  sum=sum+x;
                  x=reader.nextDouble();
              }
              System.out.println(m+"个数的和为"+sum);
              System.out.println(m+"个数的平均值为"+sum/m);
          }
      }

      • 输出:

      • System.out.println()换行,System.out.print()不换行

      • System.out.println("你好,"+
                          "很高兴认识你");

        //可以将字符串分解成几部分,用并置符号“+”连接

      • System.out.printf("%4d,%4.3f",x,y);

        //也可以像c语言一样,%f 输出浮点型数据,小数部分最多保留6位;%m.nf 输出浮点型数据占m列,小数点保留n位

      4.方法签名与方法重载

      1. 方法签名:

        • 定义:由方法名称和方法的形参列表共同组成,方法签名</u>不包括方法的返回值类型和访问修饰符</u>

      2. 方法重载:(overload)

        • 定义:一个类中定义多个同名的方法,但要求每个方法具有不同的参数类型或参数个数

        • 条件:方法名不同;参数个数不同或参数类型不同或参数顺序不同;同一作用域

        • 例子

        class example3_4{
            void test()
            {
                System.out.println("No parameters");
            }
            void test(int a)
            {
                System.out.println("a:"+a);
            }
            void test(int a,int b)
            {
                System.out.println("a:"+a+" b:"+b);
            }
            double test(double a)
            {
                System.out.println("double a:"+a);
                return a*a;
            }
        }
        class overload{
            public static void main(String args[]){
                example3_4 ob=new example3_4();
                double result;
                //参数类型不同,对应调用方法不同;此时区分方法靠的是参数的数据类型
                ob.test();
                ob.test(10);
                ob.test(10,20);
                result=ob.test(123.22);
                System.out.println("result of ob.test(123.22):"+result);
            }
        }

        ??

      5.变量作用域

      • 四个级别:

      • 类级:(全局级变量或静态变量)需要使用static关键字修饰;

      • 对象实例级:成员变量,实例化后分配内存空间,才能被访问;

      • 方法级:方法内部变量,即局部变量:

      • 块级:定义在一个内部的变量它的作用域只限于块内;

      public class example3_5{
          public static String name="微学院";
          public int i;
          public void test1()
          {
              //int j;//在方法中或者块中则不能这样初始化,不然会报错
              int j=3;
              if(j==3)
              {//块可以访问方法级别的变量,j作为test1方法中的变量
                  int k=5;
                  System.out.println("k="+k);
              }
              //System.out.println("k="+k);块中变量不能被外部调用
              System.out.println("name="+name+",i="+i+",j="+j);
          }
              public static void main(String[] args){
                  System.out.println(Demo.name);//?
                  Demo t=new Demo();//?
                  t.test1();
              }
      }

      ??

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值