Java之构造器的作用
我总是要把构造器和方法混淆,后来发现,
方法,实际上,是需要用于执行java代码的,而构造器,
构造器,,,是一个类的实例!!
为什么呢?
类的实例,我们需要用类来创建对象,进而访问其属性,因为实例是需要被用来调用的,但是调用的话,我们不得不去考虑一个问题,就是对象,最终是被存储在内存里面的,而存储的时候,我们的内存不得不需要给他再另外开辟新的内存空间,那么,java是如何给这种我们所需要的类来开辟内存空间的呢?这就涉及到了java的内存机制,就是说,我们必须要给这个类制作一个构造器,而且这个构造器的名称必须和这个类的名称是一致的,这样,我们的java编译器才能识别这个类,进而给这个类在内存中开辟内存空间,也就是我们所说的,我们手动,人为的给他进行“初始化”,事例如下:
class Rock {
Rock() {
System.out.print("Rock");
}
}
这样,当我们在对Rock类进行调用的时候,我们的java编译器就会事先对他进行“自动”地初始化,开辟内存空间
那么现在问题又来了,举个例子,我们的Rock()方法需要带有一个参数,形参,但是整个代码中,需要不仅仅是带有形参的Rock();还需要不带形参的Rock(),在我们的构造器对类进行构造的时候,需要将功能类似的,但形参不同的方法同时打包在该类下,以便在我们调用某个方法的时候,直接重载构造器中的该方法,可以说,这种构造形式,满足了我们对功能类似,形参不同的方法,调用的时候,进行重载,而满足了编译器自动初始化,人不需要手动初始化的需求。
而且有个,问题,本来两个方法,功能上是类似的,一棵树和一株树苗,你非得要给他们起不同的名字,多别扭,好在有了构造器,能够是功能相似的方法起相同的名字,不同的参数,而能够在被调用的时候得以重载,多么牛逼的构造器 啊
Java之构造器的作用的更多相关文章
- 深刻理解Java中final的作用(一):从final的作用剖析String被设计成不可变类的深层原因
声明:本博客为原创博客,未经同意,不得转载!小伙伴们假设是在别的地方看到的话,建议还是来csdn上看吧(原文链接为http://blog.csdn.net/bettarwang/article/det ...
- java中构造器(Constructor)
大部分内容转自:http://tech.it168.com/j/2006-05-18/200605181021879.shtml 构造器是一个创建对象时被自动调用的特殊方法,为的是初始化 ...
- 《Java基础——构造器(构造方法)》
Java基础--构造器(构造方法) 总结: 1.构造器名应与类名相同,且无返回值. 2."new 方法"的本质就是在调用构造器. 3.构造器的作用--初始化对象的值. ...
- JAVA中protected的作用
JAVA中protected的作用 1.public:public表明该数据成员.成员函数是对所有用户开放的,所有用户都可以直接进行调用 2.private:private表示私有,私有的意思就是 ...
- JAVA 注解的几大作用及使用方法详解
JAVA 注解的几大作用及使用方法详解 (2013-01-22 15:13:04) 转载▼ 标签: java 注解 杂谈 分类: Java java 注解,从名字上看是注释,解释.但功能却不仅仅是注释 ...
- Java中hashCode的作用
转 http://blog.csdn.net/fenglibing/article/details/8905007 Java中hashCode的作用 2013-05-09 13:54 64351人阅 ...
- paip.Java Annotation注解的作用and 使用
paip.Java Annotation注解的作用and 使用 作者Attilax 艾龙, EMAIL:1466519819@qq.com 来源:attilax的专栏 地址:http://blog. ...
- Java私有构造器
Java私有构造器:使用private关键字声明的构造函数.由于类的构造函数时私有的,所以此类不能被实例化,同时也不能被继承.<Effective Java>第三条:用私有构造器或者枚举强 ...
- Java中Volatile的作用
Java中Volatile的作用 看了几篇博客,发现没搞懂.可是简单来说,就是在我们的多线程开发中.我们用Volatile关键字来限定某个变量或者属性时,线程在每次使用变量的时候.都会读取变量改动后的 ...
随机推荐
- C++STL - vector
对vector进行一些总结. 一些需要注意的知识点: 1.标准库vector表示对象的集合, 其中所有对象的类型都相同.因为vector中容纳着其他对象,所以也称作容器. 2.C++语言既有类模板(c ...
- 大话设计模式C++版——建造者模式
日常做菜的过程中,经常会有忘记放盐或者放2次盐的经历,最后导致好好的一盘菜让大家无从下口.这个时候就需要用到建造者模式来规范炒菜的过程,来保证每一道菜都会经历加油.放食物.放盐.放味精这4道基本的工序 ...
- BestCoder Round #87 1003 LCIS[序列DP]
LCIS Accepts: 109 Submissions: 775 Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/65 ...
- 文件上传&文件下载
一.单个文件上传 文件上传需要两个jar包: 首先制作一个简单的页面,用于实现文件上传 <h1>单个文件上传</h1> <s:form action="uplo ...
- Thread对象的yield(),wait(),notify(),notifyall()
Thread类中的主要方法: join()方法:让一个线程强制运行,线程强制运行期间,其他线程无法运行,必须等到此线程完成之后才可以继续执行. setDaemon():设置线程为后台线程,这样即使Ja ...
- java 22 - 13 多线程之解决线程安全问题的实现方式2
上一章说了,解决线程安全问题的实现方式1是使用同步代码块 同时也知道了,同步代码块的锁对象是任意对象:(Object obj ; Demo d;)这些都行 那么,现在来说解决线程安全问题的实现方式2 ...
- There was an internal API error.的解决办法
1.当安装应用到4s时,偶尔有些程序会报这个错误,There was an internal API error 解决办法如下: 真机运行下,项目在iOS8.0下运行正常,但是一旦换到iOS7.0和7 ...
- 适配ipone5
PROJECT和TARGETS都需要设置
- AngularJs 1.5 $location获取url参数
地址:http://localhost/waservice.html?id=17 获取参数id的值 app.config(['$locationProvider', function ($locati ...
- C语言--scanf
关于C语言的scanf,首先看个例子 int get_int(void){ int input; char ch; ){ printf("is not an integer,please e ...