JAVA入门级教学之(对象的创建和使用)

/*
    对象的创建和使用*/

public class OOTest01
{
    public static void main(String[] args)
    {
        //通过一个类可是实例化N个对象
        //实例化对象的语法:new.类名();

        //new是java语言中的一个运算符
        //new运算符的作用是创建对象,在JVM【堆】内存中开辟新的内存空间

        //方法区内存:在类加载的时候,class字节码代码片段被加载到该内存空间中
        //栈内存【局部变量】:方法代码片段执行的时候,会给该方法分配内存空间,在栈内存中压栈
        //堆内存:new的对象在堆内存中存储

        //Student是一个引用数据类型
        //s是一个变量名
        //new Student()是实例化一个学生对象
        //s是一个局部变量【在栈内存中存储】
        Student s=new Student();

        //什么是对象:new运算符在【堆内存】中开辟的内存空间称为对象
        //什么是引用:引用是一个变量,只不过这个变量中保存了另一个java对象的内存地址。


        //java语言中,程序员不能直接操作堆内存,java中没有指针,不像C语言
        //java语言中,程序员只能通过【引用】去访问堆内存中对象内部的实例变量


        //访问实例变量的语法格式1:
        //读取数据:引用名.变量名
        
        int stuNo=s.no;
        String stuName=s.name;
        int stuAge=s.age;
        boolean stuSex=s.sex;
        String stuAddr=s.addr;

        System.out.println(stuNo);//0
        System.out.println(stuName);//null
        System.out.println(stuAge);//0
        System.out.println(stuSex);//false
        System.out.println(stuAddr);//null    

        //访问实例变量的语法格式2:
        //修改数据:引用名.变量名=值

        s.no=10;
        s.name="java"
        s.age=20;
        s.sex=true;
        s.addr="世界村"
        
        System.out.println(stuNo);//10
        System.out.println(stuName);//java
        System.out.println(stuAge);//20
        System.out.println(stuSex);//true
        System.out.println(stuAddr);//世界村    

//---------------------------------------------------
        //再通过类实例化一个全新的对象
        //stu是一个引用
        //stu同时也是一个局部变量
        //Student是变量的数据类型
        Student stu=new Student();

        System.out.println(stu.no);//0
        System.out.println(stu.name);//null
        System.out.println(stu.sex);//false
        System.out.println(stu.age);//0
        System.out.println(stu.addr);//null
    
        //举例子【错误例子】
        //编译报错,no这个实例变量不能直接采用"类名"的方式访问
        //因为no是实例变量,对象级别的变量,变量存储在java对象的内部,必须先有对对象
        //通过对象才能访问no这个实例变量,不能直接通过"类名"访问
        //System.out.println(Student.no);

        //局部变量在栈内存中存储
        //成员变量中的实例变量在堆内存的java对象内部存储

        //实例变量是一个对象一份,100个对象有100份。【对象可以相同,也可以不相同】

    }
}

发布了81 篇原创文章 · 获赞 3 · 访问量 2471

猜你喜欢

转载自blog.csdn.net/LBJ8888888/article/details/104418415