zoukankan      html  css  js  c++  java
  • Java-方法重载

    方法重载:在同一个类的内部,方法名相同,参数不同
    参数不同:参数的类型,顺序(类型),个数不同 跟参数名字无关

    class Demo{
        void show(){System.out.println("你好");}
        void show(int a){System.out.println("你好");}
        void show(double a){System.out.println("你好");}
        void show(int a,int b){System.out.println("你好");}
        void show(int a,double b){System.out.println("你好");}
        void show(double a,int b){System.out.println("你好");}
    //  void show(int b,int a){System.out.println("你好");}//不是重载,类型,个数,顺序一致
    //  void show(int b){System.out.println("你好");}//不是方法重载,参数一致
    }

    方法重载好处:方便用户调用程序

    System.out.println("你好");
    System.out.println(12);
    System.out.println(12.1f);
    System.out.println('你');
    System.out.println(true);

    println:sun写方法,体现方法重载的好处,我们可以通过println输出不同类型的数据,对于我们,只需要记住一个println的名字,就可以输出任何的数据。

    方法重载属于多态的一种
    面向对象编程3大编程思想:封装,继承,多态
    多态:事物在不同的情况,显示不同的特性。
    eg:很像变色龙
    println方法,根据不同的参数,内部调用同名的不同的方法,输出不同类型的数据,体现了多态

    public class Test1 {
        public static void main(String[] args) {
            //设计一个计算器类,实现加法的操作,通过方法重载的方式,让类,实现不同数据(int,double)的加法运算
            //方法重载:同一个类的内部,方法名相同,参数不同
            //一个类内部,多个同名的方法,调用的时候,根据参数的不同,调用不同的方法
            //方法重载的好处:调用方法很方便,只要记住一个名字,就可以实现多个不同的功能
            AddUtil a=new AddUtil();
            int sum1=a.add(12, 23);
            System.out.println("两个整数相加"+sum1);
            double sum2=a.add(12.1, 29.5);
            System.out.println("两个浮点数相加"+sum2);
        }
    }
    class AddUtil{
        int add(int num1,int num2){
            return num1+num2;
        }
        double add(double num1,double num2){
            return num1+num2;
        }
        double add(int num1,double num2){
            return num1+num2;
        }
        double add(double num1,int num2){
            return num1+num2;
        }
    }

    返回值跟方法重载没有任何的关系,方法重载只跟参数有关(一个类内部,方法名相同,参数不同)
    构造方法支持方法重载:当创建对象(new)根据构造方法参数不同,调用不同的构造方法

    public class Test1 {
        public static void main(String[] args) {
            //构造方法重载:一个类可以写多个不同的构造方法,参数不同
            //创建对象的时候,根据参数的不同来调用不同的构造方法
            User user=new User("张三");
            user.show();
            User user1=new User("李四","教师",25);
            user1.show();
            User user2=new User(2,"杨洋","演员",25,1000000,"北京");
            user2.show();
        }
    }
    //设计一个用户类(User)
    //属性:编号,名字,职位,年龄,工资,地址
    //构造方法:1.带名字的构造方法
    //       2.带名字,职位,年龄的构造方法
    //       3.带所有属性的构造方法
    //方法:show:显示用户的所有属性
    class User{
        int no;
        String name;
        String job;
        int age;
        double salary;
        String adress;
        User(String name){
            this.name=name;
        }
        User(String name,String job,int age){
            this.name=name;
            this.job=job;
            this.age=age;
        }
        User(int no,String name,String job,int age,double salary,String adress){
            this.no=no;
            this.name=name;
            this.job=job;
            this.age=age;
            this.salary=salary;
            this.adress=adress;
        }
        void show(){
            System.out.println(no+","+name+","+job+","+age+","+salary+","+adress);
        }
    }

    输出结果:

    0,张三,null,0,0.0,null
    0,李四,教师,25,0.0,null
    2,杨洋,演员,25,1000000.0,北京

    public class Test1 {
        public static void main(String[] args) {
            Cuboid cuboid=new Cuboid(12.5,30,6);
            cuboid.volume();
            Cuboid cuboid2=new Cuboid(6);
            cuboid2.volume();
        }
    }
    //设计一个长方体类,有长,宽,高
    //构造方法2个:长方体:长,宽,高三个参数
    //          正方体:边长一个参数
    //方法:求体积
    //创建一个长方体的对象求体积
    //创建一个正方体对象求体积
    class Cuboid{
        double length;
        double width;
        double height;
        Cuboid(double length,double width,double height){
            this.length=length;
            this.width=width;
            this.height=height;
        }
        Cuboid(double length){
    //        this.length=length;
    //        this.width=length;
    //        this.height=length;
    //this(参数):写在重载的构造方法的第一行,可以去调用其他构造方法(知道)
            this(length,length,length);//调用Cuboid(double length,double width,...)
        }
        void volume(){
            double tiji=length*width*height;
            System.out.println(tiji);
        }
    }
  • 相关阅读:
    SqlServer添加链接数据库
    Sqlserver2016下载
    【刷题】【lca】运输计划
    【刷题】【图论】信息传递
    【刷题】【秦九昭式】解方程
    【刷题】【最短路】【k点中最小两点间距离】Senior Pan
    【刷题】【贪心】【国王游戏】
    【刷题】【贪心】观光公交
    【刷题】【bfs】最优贸易
    【笔记】【线段树】矩形面积交 矩形周长
  • 原文地址:https://www.cnblogs.com/lilyo/p/12792611.html
Copyright © 2011-2022 走看看