对象

作者: 薛落花随泪绽放 | 来源:发表于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