[Java学习] 对Java的面对对象编程中对象和引用以及内部类的理解
来源:互联网 发布:java企业级开发是什么 编辑:程序博客网 时间:2024/05/16 12:08
最近利用下班的时候看了看的think in java感觉再看 和第一次看大不一样
接下来说一下java中对象和引用的关系,以及内部类的概念。
1、java中一切都是对象
在java中是什么来操作者对象呢?答案是引用,这就好比C或者C++中的指针。
如果用拥有一个引用,那么此时你必须让其和一个对象关联在一起,否则这个引用并不会像你想象的那样任由你的控制,例如你创建了一个String的引用:
而此时并未与任何对象关联,如果此时你去做一些操作,如调用String的一些方法,肯定是会出现问题,(一些基本类型除外,因为你在定义的时候,它们就会赋予初始值的),所以在使用钱必须和对象进行关联:
或者
像这样就可以了。
2、怎么和对象进行关联
在java中通常会通过new来创建一个对象,来和引用进行关联,如:
这样不仅创建了一个对象和引用s进行关联,同事也进行初始化,同时我们也可以创建属于自己的对象类型。
3、存储位置
(1)堆栈:一般存储引用和基本类型变量,堆栈主要是通过堆栈指针上下移动来对内存进行分配和释放。
基本类型变量并不适应于new进行创建,因为其所占的内存较小。
(2)堆:用于存储java对象,当程序执行new的时候,堆就会分配一个空间给这个对象,记住堆进行内存的分配和释放是比堆栈进行存储和释放内存消耗更多的时间,这就是基本类型变量要存在堆栈中了,因为基本类型变量是用的最频繁的,频繁的存储和释放内存,在消耗更多的时候,性能可想而知的。
4、内部类
(1)、内部类基础知识:
一般定义在java类内部的类成为内部类
内部类可以分为:定义在方法体外部的类、定义方法内部的类、静态内部类(只能定义在方法外部),匿名内部类
说明:
定义在方法外面的类:
类的成员变量(静态、非静态)可以访问,为了保证能够正确的引用的类的成员变量,所以必须先实例化外部类的对象,才可以实例化内部类的对象
访问权限可以任何,可以把它看成类的成员变量,这样理解就好多来了。
定义在方法体内的类;
类的成员变量(静态、非静态)可以访问,为了保证能够正确的引用的类的成员变量,所以必须先实例化外部类的对象,才可以实例化内部类的对象
访问权限不可以有,把他看成方法的局部变量就可以了。
静态内部类:
只能访问类的静态成员变量
访问权限任何
匿名内部类:
类的成员变量(静态、非静态)可以访问,为了保证能够正确的引用的类的成员变量,所以必须先实例化外部类的对象,才可以实例化内部类的对象
访问权限不可以有
(2)、内部类的作用
内部类可以很好的隐藏类,一般类不允许有private protect default访问权限。
内部类可以实现多重继承,弥补了java不能多继承的特点
(3)、例子
其中Content和Gdestination得到了很好的隐藏,外面调用的时候,根本就不知道调用的是具体哪个类,使这个类拥有多继承的特性。
输出;
- [Java学习] 对Java的面对对象编程中对象和引用以及内部类的理解
- 对Java中内部类的理解
- java中对象和引用的理解
- Java中对象和引用的理解
- Java中对象和引用的理解
- java学习中对类和对象的理解
- java面对对象的三大特征以及理解
- 18天Java学习---11.面向对象编程06-Java的内部类及对象数组
- 对Java中引用、对象、基本类型等的理解
- Java在外部类的方法中创建内部类对象
- java面向对象的三个特征以及匿名内部类
- Java学习----day2——(4)面对对象编程的概念理解
- java中对象和对象的引用
- java中对象和对象的引用
- JAVA中对象和对象的引用
- Java中对象与引用的理解
- 引用的理解(面对对象)
- Java基础-接口,内部类及对象克隆的学习
- IoT
- intellij打开工程在每个java文件上有个红色的无效符的解决办法
- LIVE555 4路1080P客户端花屏延迟的问题
- u3d native render
- 【android】:android之传感器的使用
- [Java学习] 对Java的面对对象编程中对象和引用以及内部类的理解
- 想摆脱美工?这有帮你成为优秀设计师的10个好习惯!
- Happy Number(C++)
- ffmpeg android 移植编译出现的问题,求解
- oralce有关建表,建序列,建触发器,建存储过程,建job定时任务小例子,仅供本人参考
- 插入耳机开机随机出现POP音
- 100个动规方程
- 《Spring实战》学习笔记-第六章:web视图解析
- WGS84坐标系转火星坐标系