引用对象的实例方法

Posted iuiu啊

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了引用对象的实例方法相关的知识,希望对你有一定的参考价值。

引用对象的实例方法,其实就引用类中的成员方法

        格式:对象::成员方法

        范例:"HelloWorld"::toUpperCase

                String类中的方法:public String toUpperCase() 将此String所以字符转换为大写

练习

        定义一个类(PrintString),里面定义一个方法

                public void printUpper(String s):把字符串参数变成大写的数据,然后在控制台输出

        定义一个接口(Printer),里面定义一个抽象方法

                void printUpperCase(String s)

        定义一个测试类(PrinterDemo),在测试类中提供两个方法

                一个方法是usePrinter(Printer p)

                一个方法是主方法,在主方法中调用usePrinter方法

package com.aynu22;

public interface Printer 
    void printUpperCase(String s);

package com.aynu22;

//    练习
//
//        定义一个类(PrintString),里面定义一个方法
//            public void printUpper(String s):把字符串参数变成大写的数据,然后在控制台输出
//        定义一个接口(Printer),里面定义一个抽象方法
//            void printUpperCase(String s)
//        定义一个测试类(PrinterDemo),在测试类中提供两个方法
//            一个方法是usePrinter(Printer p)
//            一个方法是主方法,在主方法中调用usePrinter方法

import java.io.PrintStream;

public class PrinterDemo 
    public static void main(String[] args) 

        //在主方法中调用usePrinter方法
//        usePrinter((String s)-> 
            String result = s.toUpperCase();
            System.out.println(result);
//            System.out.println(s.toUpperCase());
//        );

        usePrinter(s -> System.out.println(s.toUpperCase()));

        //引用对象的实例方法
        PrintString  ps = new PrintString();
        usePrinter(ps::printUpper);

        //Lambda表达式被对象的实例方法替代的时候,它的形式参数全部传递给该方法作为参数

    

    private static void usePrinter(Printer p)
        p.printUpperCase("HelloWorld");
    

package com.aynu22;

public class PrintString 
    //            public void printUpper(String s):把字符串参数变成大写的数据,然后在控制台输出
    public void printUpper(String s)
        String result = s.toUpperCase();
        System.out.println(result);
    

HELLOWORLD
HELLOWORLD


 引用类的实例方法

引用类的实例方法,其实就是引用类中的成员方法

        格式:类名::成员方法

        范例:String::substring

        String类中的方法:public String substring(int beginIndex,int endIndex)

        从beginIndex开始到endIndex结束,截取字符串,返回一个子串,子串的长度为endIndex-beginIndex


练习:

        定义一个接口(MyString),里面定义一个抽象方法

                String mySubString(String,int x,int y);

        定义一个测试类(MyStringDemo),在测试类中提供两个方法

                一个方法是:useMyString(MyString my)

                一个方法是主方法,在主方法中调用useMyString()方法

package com.aynu23;

public interface MyString 
    String mySubString(String s,int x,int y);

package com.aynu23;

//    练习:
//
//        定义一个接口(MyString),里面定义一个抽象方法
//            String mySubString(String s,int x,int y);
//        定义一个测试类(MyStringDemo),在测试类中提供两个方法
//            一个方法是:useMyString(MyString my)
//            一个方法是主方法,在主方法中调用useMyString()方法

public class MyStringDemo 
    public static void main(String[] args) 
        //在主方法中调用useMyString()方法
//        useMyString((String s,int x,int y)->
//             return s.substring(x,y);
//        );

        useMyString(( s, x, y)->
            s.substring(x,y)
        );

        //引用类的实例方法
        useMyString(String::substring);

        //Lombda表达式被类的实例方法替代的时候
        //第一个参数作为调用者
        //后面的参数全部传递给该方法作为参数
    

    private static void useMyString(MyString my)
        String s = my.mySubString("HelloWorld", 2, 5);
        System.out.println(s);
    

 

类实例 及 实例化对象 对象引用

类实例及成员引用

 

 


 

        当我们创建完一个类,如果要使用这个类,必须在程序里创建类的实例对象,通过这个实例来引用类中所定义的方法成员,完成所需的工作。创建实例对象时,必须使用new关键字,这个关键字我们在集合和哈希表对象的创建时用到过,基本方法一致,就是用new关键字产生一个指向类实例对象所在位置的引用。实例化类对象的基本语法为:

        ClassName ObjName=new ClassName([参数]);       

         类的名字       对象名                           是否有参数、多少个参数由类的构造函数决定,现在我们都使用无参数来创建对象

 

        类中的非静态方法与字段属性是与对象实例化共生共亡的,要使用类中或对象中的字段属性和非静态方法要先实例化,用new关键字来实现实例化,new关键字创建的是一个指向对象位置的地址引用。

以上是关于引用对象的实例方法的主要内容,如果未能解决你的问题,请参考以下文章

Java基础 -- new对象实体与对象引用方法的返回值构造方法== 与 equalshashCode 与 equals为什么Java只有值传递

Java方法内创建对象实例后,啥时候释放内存(引

Java_接口实例化对象 (待续)

通过对象引用访问实例变量的静态嵌套类的 Java 示例 [重复]

java8 新特性5 方法引用

Java代码执行顺序及多态体现