对象

作者: 薛落花随泪绽放 | 来源:发表于2019-07-01 20:01 被阅读3次
Java是一门面向对象的程序设计语言,对象是由类抽象出来的,所有的问题都通过对象来处理。

对象的创建

每实例化一个对象就会自动调用一个构造方法,实质上这个过程就是创建对象的过程。语法如下:
Test test = new Test();
Test test = new Test("a");

表7.2 创建对象语法中的参数说明

设置值 描述
Test 类名
test 创建Test类对象
new 创建对象操作符
"a" 构造方法的参数

例题

创建类CreateObject.
public class CreateObject {
    public CreateObject() { //构造方法
        System.out.println("创建对象");
    }
    public static void main(String[] args) {
        new CreateObject();     //创建对象
    }
}
创建对象

访问对象的属性和行为

例题

创建类TransferProperty
public class TransferProperty {
    int i = 47;     //定义成员变量
    public void call() {        //定义成员方法
        System.out.println("调用call()方法");
        for(i = 0; i < 3; i++) {
            System.out.print(i+" ");
            if(i == 2) {
                System.out.print("\n");
            }
        }
    }
    
    public TransferProperty() {     //定义构造方法
    }
    
    public static void main(String[] args) {
        TransferProperty t1 = new TransferProperty();       //创建一个对象
        TransferProperty t2 = new TransferProperty();       //创建另一个对象
        t2.i = 60;      //将类成员变量赋值为60
        //使用第一个对象调用类成员变量
        System.out.println("第一个实例对象调用变量i的结果:"+t1.i++);
        t1.call();//使用第一个对象调用类成员方法
        //使用第二个对象调用类成员变量
        System.out.println("第二个实例对象调用变量i的结果:"+t2.i++);
        t2.call();//使用第二个对象调用类成员方法
    }
}
第一个实例对象调用变量i的结果:47
调用call()方法
0 1 2 
第二个实例对象调用变量i的结果:60
调用call()方法
0 1 2 

例题

创建类AccessProperty
public class AccessProperty {
    static int i = 47;      //定义静态成员变量
    public void call() {    //定义成员方法
        System.out.println("调用call()方法");
        for(i=0;i<3;i++) {
            System.out.print(i+" ");
            if(i==2) {
                System.out.print("\n");
            }
        }
    }
    public AccessProperty() {       //定义构造方法
    }
    public static void main(String[] args) {
        AccessProperty t1 = new AccessProperty();       //创建一个对象
        AccessProperty t2 = new AccessProperty();       //创建另一个对象
        t2.i = 60;      //将类成员变量赋值为60
        //使用第一个对象调用类成员变量
        System.out.println("第一个实例对象调用变量i的结果:"+t1.i++);
        t1.call();//使用第一个对象调用类成员方法
        //使用第二个对象调用类成员变量
        System.out.println("第二个实例对象调用变量i的结果:"+t2.i);
        t2.call();//使用第二个对象调用类成员方法
    }
}
第一个实例对象调用变量i的结果:60
调用call()方法
0 1 2 
第二个实例对象调用变量i的结果:3
调用call()方法
0 1 2 

对象的引用

语法
类名 对象引用名称

对象的比较

例题

创建类Compare
public class Compare {
    public static void main(String[] args) {
        String c1 = new String("abc");      //创建两个String型对象引用
        String c2 = new String("abc");
        String c3 = c1;     //将c1对象引用赋予c3
        //使用“==”运算符比较c2和c3
        System.out.println("c2==c3的运算结果为:"+(c2==c3));
        //使用equals()方法比较c2与c3
        System.out.println("c2.equals(c3)的运算结果为:"+(c2.equals(c3)));
    }
}
c2==c3的运算结果为:false
c2.equals(c3)的运算结果为:true

对象的销毁

每个对象都有生命周期,当对象的生命周期结束时,分配给该对象的内存地址需要被回收。

实践与练习

尝试编写一个类定义一个修饰权限为private的成员变量,并定义两个成员方法,一个成员方法实现为此成员变量赋值,另一个成员方法获取这个成员变量的值,保证其他类继承该类时能获取该类的成员变量的值。
创建类User1
public class User1 {
    private String name;
    
    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}
创建测试Usertest
public class Usertest extends User1{

    
    public static void main(String[] args) {
        User1 u=new User1();
        u.setName("123");
        System.out.println(u.getName());
    }
}
123
尝试编写一个矩形类,将长与宽作为矩形类的属性,在构造方法中将长、宽初始化,定义一个成员方法求此矩形的面积。
public class User2 {
    private float height;
    private float width;
    public User2(float height,float width){
        this.height=height;
        this.width=width;
    }
    public float square(){
        return height*width;
    }
    public static void main(String args[]){
        User2 u=new User2(3.5f,4.5f);
        System.out.println(u.square());
    }
}
根据运行参数的个数决定打印变量i值的次数。
public class User3 {
    public static void main(String[] args) {
        int lengh = args.length;
        if (lengh == 0) {
            System.out.println("无运行参数");
        } else {
            for (int i = 1; i <= args.length; i++) {
                System.out.println(i);
            }
        }
    }
}

相关文章

网友评论

    本文标题:对象

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