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

java类和对象以及匿名对象

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

java类和对象以及匿名对象

一、类的定义

用idea创建工程,在工程里创建对象如下:

package com.itstuday.javabean;



public class Person {
    //成员变量
    private String name;
    private String age;

    //成员方法
    public String getName() {
        return name;
    }

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

    public String getAge() {
        return age;
    }

    public void setAge(String age) {
        this.age = age;
    }
    //无参构造方法
    public Person() {
    }
    //满参构造方法
    public Person(String name, String age) {
        this.name = name;
        this.age = age;
    }
}

测试:

package com.itstuday.javabean;

public class test01 {
    public static void main(String[] args) {

        Person person = new Person();

        person.setAge("18");

        System.out.println("person.getAge().toString() = " + person.getAge().toString());
    }
}

运行结果:

 

二、This的用法

1.

package com.itstuday.javabean;




public class Student {
    public void show(){
        method();
        System.out.println(" = " +this);
    }

    public void method() {
        System.out.println(""+this);
    }
}

测试:

package com.itstuday.javabean;

public class test02 {
    public static void main(String[] args) {
        Student s = new Student();
        System.out.println("s = " + s);
        s.show();

        Student s1 = new Student();
        System.out.println("s1 = " + s1);
        s1.show();
    }
}

结果:

如果将Student类中的method()方法变成静态方法 测试结果如下:

结论:无论是直接或间接的调用非静态方法,都有一个隐式变量this记录着地址值。

2.调用本类构造方法

package com.itstuday.javabean;


public class Teacher {
    String name;
    int age;

    public Teacher() {
        this("哈哈",18);
        System.out.println("无参构造方法 ");
    }


    public Teacher(String name, int age) {
//        this();
        this.name = name;
        this.age = age;
        System.out.println(" 满参构造方法" );
    }

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

测试:

package com.itstuday.javabean;

public class test03 {
    public static void main(String[] args) {
        Teacher teacher1 = new Teacher();
        System.out.println("teacher1 = " + teacher1);
//        Teacher teacher = new Teacher("呵呵",30);
    }
}

运行结果:

放开满参的this方法,屏蔽无参的this方法的执行结果。

 

 总结: 1)this调用本类的构造方法要求必须位于当前构造方法

                2) this调用本类的构造方法不支持递归调用

三、匿名对象

1.

package com.itstuday.javabean;

public class student01 {
    String name;
    public void say(){
        System.out.println("name = " + name);
    }

    public void sleep(){
        System.out.println("sleep.............. ");
    }
}
测试:
package com.itstuday.javabean;

public class test04 {
    public static void main(String[] args) {
        student01 s = new student01();
        s.sleep();
        s.name = "罗宾";
        s.say();
        System.out.println("分界线==========================");
        new student01().sleep();
        new student01().name = "娜美";
        new student01().say();

        System.out.println("s = " + s);
        System.out.println("s = " + new student01());
    }
}

结果:

1)匿名对像可以直接调用方法 

2)匿名对象局限性不能用它多次调用类的成员

2.匿名对象的使用(用来传递参数)

package com.itstuday.javabean;

public class test05 {
    public static void main(String[] args) {
        showStudent(new student01());
    }

    public static void showStudent(student01 s) {
        s.name= "哈哈";
        s.sleep();
        s.say();
    }


}

运行结果:

 

 

 

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

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

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