02-方法

作者: 北街九条狗 | 来源:发表于2019-05-24 09:13 被阅读0次

    复习要点

    1.方法

    概念:方法是一套功能代码

    1.1认识方法
    // 方法的声明有一个固定大概的形式,即
    // [访问权限修饰符] [静态] 返回值类型 方法名(形参列表){方法体}
    // 其中[访问权限修饰符] [静态]根据需要选择是否需要
    public void test(){
        int num = 10;
    }
    
    1.2方法返回值介绍
    // public 公有,封装符号,其余还有protected,默认的,private
    // 返回值类型,可以是一切基本或引用数据类型
    // 有返回值的方法可以向方法外部提供数据,在调用该方法的地方就可以接返回值
    // 类似顾客(被调用方法)给服务员提供小费,给int,String,还是其他类型由顾客决定
    // 但当不想给“小费”时,也要写一个关键字void
    public int getNum(){
        return 1;
    }
    public String getString(){
        return "hello";
    }
    public int[] getArray(){
        int arr = {1,2,3};
        return arr;
    }
    public void showInfo(){
        System.out.println("Sorry");
    }
    
    1.3方法的参数
    public class Demo {
        // num为形参,类型要求为int
        public void test1(int num) {
            System.out.println(num);
        }
        public void test2(){
            // 调用时需要按照“对方”的要求,给对方参数,才能调用
            // 形参类似是一个门卫,要求调用者必须按要求“出示”参数
            test1(6); // 正确
            test1("hello");// 错误 
        }
        
        public void test3(int arr[]) {
            System.out.println(arr[0]);
        }
        public void test4() {
            int arr[] = {1,23,56};
            test3(arr); // 正确
            test3("hello");// 错误 
        }
    }
    
    1.4方法的重载(静态多态,编译时多态)

    概念:同一个类中同名不同参的方法(与返回值无关)

    public class Demo {
        public int test1(){
            System.out.println("123");
            return 1;
        }
        public void test1(int num){
            System.out.println(num);
        }
    }
    
    1.5特殊的方法——构造器

    作用:创建对象

    // 构造器(构造方法):1.与类同名,2.没有返回值,没有void
    public class Demo {
        // 无参构造器
        public Demo() {
            
        }
        // 有参构造器
        public Demo(int num) {
            
        }
        // 普通方法,命名还不规范,受人鄙视
        public void Demo() {
    
        }
    }
    
    1.6方法的调用

    提示:

    在不同的类中,static修饰的方法或属性可以直接通过类名调用

    public class DemoClass_One{
        static int num = 999;
        public static void show(){
             System.out.println(1);
        }
    }
    public class DemoClass_Two{
        public static void main(String[] args) {
            // 使用别人的东西,当然要“喊”对方的名字,所以需要加类名
            DemoClass_One.show();// 打印输出1
            System.out.println(DemoClass_One.num);// 打印输出999
        }
    }
    

    在同一个类中,static修饰的方法只能直接访问static成员

    public class DemoClass_One{
        int i = 1000;
        static int num = 999;  
        public static void demo1(){
            
        }
        public void demo2(){
            
        }
        // 静态方法:只能直接访问静态的属性或其他静态方法
        public static void test(){
            System.out.println(num); // 正确
            System.out.println(i);// 报错
            demo1();// 正确
            demo2();// 报错
        }
    }
    

    静态的属性共享(大家用的都是同一个)

    public class Demo{
        static int num = 100;
    }
    
    public class Test{
       public void test1() {
           Demo.num++;
       }
       public void test2() {
           Demo.num++;
       }
       public void test3() {
           test1();
           test2();
           System.out.println(Demo.num);// 打印输出102
       }
    }
    

    经典练习题

    方法的定义

    1.定义一个Test类,定义一个返回值类型为String的方法,名为test,形参为int,并返回“你好”

    public class Test {
        String test(){
            return "你好";
        }
    }
    

    2.定义一个类Demo,在类中定义一个方法show,形参为两个double,返回值为这个两个参数的和

    public class Demo {
        double show(double a,double b){
            return a+b;
        }
    }
    

    方法的调用

    3.在Test类中,定义一个方法do,调用上述1题中所定义的方法

    引包
    public class Test {
        void do(){
            Test t=new Test();
            t.test()
        }
    }
    

    静态

    4.static修饰的类和方法有什么特点?如何调用?

    静态的属性共享

    在不同的类中,static修饰的方法或属性可以直接通过类名调用

    构造器的作用

    5.构造器的作用是创建对象

    重载,又称为静态多态,编译时多态,overload

    6.同一个类中同名不同参的方法称为重载(与返回值无关)

    public class Demo {
        // 方法的重载
        public void test1(int num) {
            
        }
        // 方法的重载
        public int test1() {
    
        }
        // 错误,同一个类中不能有同名同参方法
        public double test1() {
    
        }
    }
    

    相关文章

      网友评论

          本文标题:02-方法

          本文链接:https://www.haomeiwen.com/subject/jaywzqtx.html