接口作为方法的参数和Object类的toString方法

接口作为方法的参数和返回值

list就是ArrayList所实现的接口

左边是接口名称,右边是实现类名称,这就是多态写法

//Skill是一个接口,SkillImpl是Skill的实现类  
public static void main(String[] args) { //左边是接口,右边是实现类 Skill skill = new SkillImpl(); //左边是接口,右边是实现类 List<String> arrayList = new ArrayList<>(); List<String>result = addNames (arrayList); for (int i = 0; i <result.size(); i++) { System.out. println(result.get(i)); } } public static List<String>addNames(List<String> list){ list.add("迪雨热巴"); list.add("古力娜扎"); list.add("玛尔扎哈"); list.add("沙扬娜拉"); return list; }

 

Object类的toString方法

java.Lang . object类
类object是类层次结构的根(最顶层)类。每个类都使用object作为超(父)类。所有对象(包括数组)都实现这个类的方法。

Person类默认继承了object类,所以可以使用object类中的tostring方法

tring tostring()返回该对象的字符串表示。

看一个类是否重写了tostring方法,直接打印这个类对应对象的名字即可

如果没有重写tostring方法,那么打印的就是对象的地址值(黑认)

如果重写tostring方法,那么就按照重写的方式打印

 

ALT+INT

 

 

Person

public class Person {
    private String name;
    private int age;

    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public Person() {
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    @Override
    public String toString() {
        return "Person{" +
                "name='" + name + '\'' +
                ", age=" + age +
                '}';
    }
}

 

 

toString方法已经帮我们写好了,直接调用即可

测试

public static void main(String[] args) {
        Person p = new Person( "张三", 18);
        String s = p.toString();
        System.out.println(s);
        //直接打印对象的名字,其实就是调用对象的toString方法 p = p.toString( );
        System.out.println(p);


        Random r = new Random( );
        System.out.println(r);
        Scanner sc = new Scanner(System.in) ;
        System.out.println(sc); //重写toString方法
        ArrayList<Integer> list = new ArrayList<>();
        list.add(1);
        list.add(2);
        System.out.println(list);//重写toString方法
    }

可以在Person类里面新添加一个变量sex,重新写一下,有参无参,getset,toString

  public static void main(String[] args) {
        Person p = new Person("张三", 18, "");
        String s = p.toString();
        System.out.println(s);
        //直接打印对象的名字,其实就是调用对象的toString方法 p = p.toString( );
        System.out.println(p);
    }

Person

public class Person {
    private String name;
    private int age;
    private String sex;

    public Person(String name, int age, String sex) {
        this.name = name;
        this.age = age;
        this.sex = sex;
    }

    public Person() {
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }

    @Override
    public String toString() {
        return "Person{" +
                "name='" + name + '\'' +
                ", age=" + age +
                ", sex='" + sex + '\'' +
                '}';
    }
}

 

posted @ 2022-07-05 09:41  漁夫  阅读(87)  评论(0)    收藏  举报