Java 面向对象 day2

Java 面向对象 day2

方法

一.方法的概述

在Java的语言中,方法相当于C语言中的函数,但是它与传统的函数也有着明确的不同:在结构化的语言中,函数是一等公民,整个程序是由一个个函数组成的;但是在面向对象的语言里,是一等公民,整个程序是由一个个类组成的。因此在Java中,方法不能独立存在,它只能属于类或者对象。因此,如果我们要定义一个方法,就必须在类中定义。值得注意的是,如果这个方法添加了修饰符static(这个修饰符后面会详细说明),这个方法就属于这个类,否则的话,这个方法属于这个类的实例。

二.方法的格式说明

访问修饰符  返回值类型  方法名([数据类型 形参名,.....]){
     方法体;
     [return 返回值;]
}

访问修饰符: 对方法设定访问的权限,有静态修饰符 static ,最终修饰符 final等.
返回值类型: 用于限定返回数据的指定类型,返回值类型可以为基本数据类型/引用数据类型皆可以,并还有 一个void类型                      void表示无返回值类型
形参: 形式参数,当前没有任何数据,用于等待方法被调用时,传递一个实际参数
实际参数: 调用方法时,为形参设置的一个实际值,实际参数的类型要与形参保持一致.
Return: 用于返回数据的关键字
返回值: 当方法规定返回值类型后,返回的数据的类型一定与返回值类型保持一致

三.方法的定义

1.无参无返回值方法

无参无返回值,数据只能随着对象的改变而改变

public class Person {
	//静态特征,在Java称之为属性(全局变量)
	public String name;
	public String sex;
	public int age;
	
	//无参无返回值,数据只能随着对象的改变而改变
	public void print() {
		System.out.println("我的名称:"+name+",性别为:"+sex+",年龄:"+age);
	}
}

2.带一参数无返回值方法

设置了一个String类型的形参,当行为中需要某些额外元素时,通过参数的形式注入

//设置了一个String类型的形参,当行为中需要某些额外元素时,通过参数的形式注入
	public void eat(String food) {
		System.out.println("今天吃了一顿"+food);
	}

3.带参带返回值方法

通过int money 传入参数,设定了方法的返回值为String类型,return只能返回字符串

/*
 * String 是一个字符串类型的返回值类型,返回值类型可以是基本数据类型和引用数据类型
 * 设置String类型后,return只能返回字符串
 * int money 是形参,用于输入进行操作的数据
 */
 public String pay(int money){
        if (money>50){
            System.out.println("给了"+name+money+"元,买了条中华");
            return "中华";
        }else if (money>20){
            System.out.println("给了"+name+money+"元,买了个哈根达斯");
            return "哈根达斯";
        }else {
            System.out.println("给了"+name+money+"元,买了瓶可乐");
            return "可乐";
        }
    }

4.带多个参数带返回值方法

4.1方法的定义

//通过数组的起始位置和结束位置,获得指定的元素
    public Student[] selectStu(int start,int end,Student[] students){
        //需要返回数据,就先定义一个对应类型的变量
        Student[] s = new Student[end-start+1];
        int j=0;
        for (int i = start;i<=end;i++){//遍历需要元素
            s[j++] = students[i];//将截取的元素放入到新的数组
        }
        return s;
    }

4.2方法的调用

        //截取下标1到3的元素
        //多个参数的方法调用时,参数的类型要匹配
        Student[] s = is.selectStu(1,3,stus);
        System.out.println("截取后的数组内容是:");
        for (Student student:s){
            System.out.println(student.toString());
        }

四.方法的常见使用方式

1.方法的参数传递机制

方法的参数分为两种:形参和实参。

形式参数: 用于接收实际参数的变量(形式参数一般就在方法的声明上)
实际参数:实际参与运算的变量

public class TestDemo01 {
    public static void main(String[] args) {
        int a = 3,b = 4;
        change(a,b);//实参
        System.out.println("a:"+a+"  "+"b:"+b);  //a:3  b:4
    }
    //类中的方法都用public static为前缀
    public static void change(int a,int b){//形参
        int temp;
        temp = a;
        a = b;
        b = temp;
        System.out.println("a:"+a+"  "+"b:"+b);  //a:4  b:3
    }
}

2.形参个数可变的方法

从JDK 1.5之后,Java允许定义形参个数可变的参数。如果在定义方法时,在最后一个形参的类型后增加三点(…),则表明该形参可以接受多个参数值,多个参数值被当成数组传入。形参个数可变的参数本质就是一个数组参数。

public class TestDemo02 {
    public static void main(String[] args) {
        print(4, "血冷", "风暴", "冰封");
    }

    //String... books相当于String[] books
    public static void print(int num, String... books) {
        System.out.print("书名:");
        for (String book : books) {
            System.out.print(book + " ");
        }
        System.out.println("num = " + num);
    }
}

3.方法重载

方法重载(Overloading)的定义:如果有两个方法的方法名相同,但参数不一致,哪么可以说一个方法是另一个方法的重载。
具体说明如下:
          a.方法名相同
          b.方法的参数类型,参数个不一样
          c.方法的返回类型可以不相同
          c.方法的修饰符可以不相同
          d.main 方法也可以被重载

代码演示

public class TestDemo03 {
    public static void main(String[] args) {
        int a = 10;
        int b = 20;
        String c = "Hi";
        sum(a);
        sum(a,b);
        sum(a,c);
    }

    public static void sum(int a) {
        System.out.println(a);
    }

    public static void sum(int a, int b) {
        System.out.println("a + b = " + (a + b));
    }

    public static void sum(int a,String c){
        System.out.println("a + c = " + (a+c));
    }
}

运行结果

10
a + b = 30
a + c = 10Hi

总结

以上就是今天要讲的内容,本文仅仅简单介绍了方法的概述,方法的定义,简单讲解了方法的使用,希望在你们学习Java的路上提供一点小小的帮助。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值