面向对象-1

Posted wx1995

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了面向对象-1相关的知识,希望对你有一定的参考价值。

/*
//实例变量:变量必须先声明,再赋值才能访问--对于成员变量来说,没有手动赋值时,系统默认赋值
类型 默认值 -------------------------- byte 0 short 0 int 0 long 0L float 0.0F double 0.0 boolean false char u0000 引用数据类型 null */ public class Student{ // 属性(描述状态),在java程序中以“成员变量”的形式存在。 // 一个对象一份。 int no; // 这种成员变量又被称为“实例变量”。 String name; int age; boolean sex; String addr; }
/*
*/
public class StudentTest{
  public static void main(String[] args){

        //访问学生姓名可以直接通过类名吗?
        // 学生姓名是一个实例变量。实例变量是对象级别的变量。
        // 是不是应该先有对象才能说姓名的事儿。
        // 不能通过“类名”来直接访问“实例变量”。
        //System.out.println(Student.name);
        
        
        // 创建学生对象1
        // s1属于局部变量吗?当然是。
        // s1这个局部变量叫做引用
        Student s1 = new Student();
        // 怎么访问实例变量?
        // 语法:引用.实例变量名
        System.out.println(s1.no);
        System.out.println(s1.name);
        System.out.println("-----------------------------");


        // 创建学生对象2
        // s2也是局部变量。
        // s2也叫做引用。
        Student s2 = new Student();
        System.out.println(s2.no);
        System.out.println(s2.name);

        // 程序执行到此处我可以修改s1这个学生的学号吗?
        // 通过“=”赋值的方式将内存中实例变量的值修改一下。
        s1.no = 110;
        s1.name = "张三";
        s1.age = 20;
        s1.sex = true;
        s1.addr = "深圳宝安区";

        System.out.println("学号=" + s1.no);
        System.out.println("姓名=" + s1.name);
        System.out.println("年龄=" + s1.age);
        System.out.println("性别=" + s1.sex);
        System.out.println("住址=" + s1.addr);

        // 再次赋值
        s1.addr = "北京大兴区";
        System.out.println("住址:" + s1.addr);
    }
}

9.什么是实例变量?

--对象又称为实例,实例变量实际上就是:对象级别的变量;实例变量在访问的时候,必须先创建对象.

所有的实例变量(属性)都是通过“引用.”来访问的

10.对象和引用的区别?

对象是:通过new出来的,在堆内存中存储;引用是:是存储对象内存地址的一个变量

通俗一点:只要这个变量中保存的是一个对象的内存地址,那么这个变量就叫做“引用”

思考:引用不一定是局部变量

 

内存图:

 

技术图片

 

以上是关于面向对象-1的主要内容,如果未能解决你的问题,请参考以下文章

Java中面向对象的三大特性之封装

python之路之前没搞明白4面向对象(封装)

面向面试编程代码片段之GC

PHP面向对象之选择工厂和更新工厂

Python面向对象学习之八,装饰器

Scala的面向对象与函数编程