栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

java——方法篇

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java——方法篇

Java——方法篇 一.方法的分类
  • 根据方法有没有参数,可分为:
  • 1.无参方法
  • 2.有参方法
  • 根据有没有返回值,可分为:
  • 1.无返回值方法
  • 2.有返回值方法

示例如下:

public class Demo{
    
//  1. 最简单的无参方法
    void sum1(){
        System.out.println("加法操作"); 
    }
//    2. 拥有修饰符的无参方法 
    public static void sum2(){ 
        System.out.println("加法操作");
    }
//    3. 拥有参数的方法
    public static void sum3(int a,int b){ 
        System.out.println("两数相加结果"+a+b); 
    }
//    4.拥有返回值的方法 
    public static int sum4(int a,int b){

        return a+b;
    }
//        5.声明一个无参数带返回值
    
    public static int sum5(){
        int x=20; 
        int y=28; 
        int z=x+y; 
        return z; 
    }
}

二.方法的调用格式
  • 语法:方法名(实参列表);

  • 实参的数量和类型必须和形参的数量和类型保持完全一致。

  • 方法和方法之间只能相互调用,不能在方法中声明方法。就目前而言声明的方法和main是并列的关系

  • 如果声明的方法有返回值,那么返回值会返回给调用者,调用者必修创建变量来接收数据。

无返回值的方法调用格式:(包括实参和形参的说明)
public class Demo{

    public static void main(String[] args) {
        //实参
        int a = 10;
        int b = 20;
        swap(a,b);

        System.out.println("main函数中的a=" + a);//10
        System.out.println("main函数中的b=" + b);//20
    }
    //分析:需要参数(两个参数)
    // 不需要返回值
    // 形参:没有携带值的变量,多个变量之间使用逗号分隔

    public static void swap(int a,int b){
        int temp = 0;
        temp = a;
        a = b ;
        b = temp ;

        System.out.println("swap函数中的a=" + a); //20
        System.out.println("swap函数中的b=" + b); //10
    }
}

swap函数中的a=20
swap函数中的b=10
main函数中的a=10
main函数中的b=20
//无返回值故swap中的数据还在方法中而main的数据也没有被覆盖。
有返回值的方法调用格式:
  • 有返回值的要用到return关键字
  • return关键字的作用:结束方法,返回结果。

情况1

public class Demo {

    public static void main(String[] args) {
        show();
    }

    
    public static void show() {
        System.out.println("Hello World!");
        int x = 10;
        if (x > 5) {
            return;//结束方法 }
        }
        // 不能执行
        System.out.println("Hello World!========");
    }
}


Hello World!

情况2

public class Demo {

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

    
    public static int add(int a ,int b) {
        System.out.println("Hello World!");
       int c = a+b;
       return c;
    }
}

30

情况3

public class Demo {

    public static void main(String[] args) {
        int result = compare(34,67);
        System.out.println(result);
    }

    //

    // 需求:比较两个变量的大小,返回较大的一个
    public static int compare(int a,int b) {
        if(a>b){
            return a;
        }
        else if(a
            return b;
        }
        else{
            return 0;
         }
    }
}

67
三.方法的重载
  • 在同一个类中方法名相同,仅参数列表不同则是方法重载。

  • 重载的方法与main方法是并行关系。

  • 参数列表的不同:参数的数量,数据类型,参数的顺序。

  • 方法的重载与修饰符和返回值没有任何关系。

四.类方法和实例方法的区分
  • 类方法:使用static修饰,是属于当前整个类的而非属于某个实例。只能处理static域或者调用static方法。
  • 实例方法(对象方法):是属于对象的方法,用对象来调用。
  • 类方法只能调用其他类方法,而实例方法则可以其他类方法和实例方法。

实例化对象: 例如存在类Dome,则有:Dome dome = new Dome();实例化一个对象dome。

五.方法的重写(extends)
  • 重写是子类对父类(必修满足非private,非static,非final)的方法块进行重写,而返回值和形参列表必须保持不变。
  • 访问权限不能比父类中被重写的方法的访问权限更低。(不能更严厉)。
六.多态的理解(父类引用指向子类对象)Animal a = new Cat();
  • 多态的前提1:是继承。

  • 多态的前提2:要有方法的重写。

  • 父类引用指向子类对象,如:Animal a = new Cat(); 创建父类对象,子类实例。

  • 多态中,编译看左边,运行看右边 例:Animal a = new Cat();

  • 方法的多态,属性没有多态。

创建包: cn.tedu.oop
创建类: TestDemo.java

package cn.tedu.oop2;

public class TestDemo {
    public static void main(String[] args) {
        //6.创建“纯纯的”对象用于测试
        Animal a = new Animal();
        Cat c = new Cat();
        Dog d = new Dog();
        a.eat();//小动物Animal吃啥都行~调用的是父类自己的功能
        c.eat();//小猫爱吃小鱼干~调用的是子类重写后的功能
        d.eat();//小狗爱吃肉骨头~调用的是子类重写后的功能
        
        //a.jump();//报错,Animal类里并没有这个方法
        //a.run();//报错,Animal类里并没有这个方法
        c.jump();//小猫Cat跳的老高啦~,子类可以调用自己的功能
        d.run();//小狗Dog跑的老快啦~,子类可以调用自己的功能

        //7.创建多态对象进行测试
        
        Animal a2 = new Cat();//Cat类对象的地址值交给父类型变量a2来保存
        Animal a3 = new Dog();//Dog类对象的地址值交给父类型变量a3来保存
        //8.测试多态对象
        
        a2.eat();//小猫爱吃小鱼干~,多态对象使用的是父类的定义,子类的方法体
    }
}

//1.创建父类
class Animal{
    //3.创建父类的普通方法
    public void eat(){
        System.out.println("小动物Animal吃啥都行~");
    }
}
//2.1创建子类1
class Cat extends Animal{
    //4.1添加重写的方法
    public void eat(){
        System.out.println("小猫爱吃小鱼干~");
    }
    //5.1添加子类的特有功能
    public void jump(){
        System.out.println("小猫Cat跳的老高啦~");
    }
}
//2.2创建子类2
class Dog extends Animal{
    //4.2添加重写的方法
    @Override
    public void eat(){
        System.out.println("小狗爱吃肉骨头~");
    }
    //5.2添加子类的特有功能
    public void run(){
        System.out.println("小狗Dog跑的老快啦~");
    }
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1013068.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号