从头认识java-4.1 创建与初始化对象
2015-10-25 22:48
465 查看
这一章节我们来聊聊创建与初始化对象。
这个需要讨论的问题源自于c语言,在c语言中,很大部分的错误是忘记了初始化某些东西,他把库的构建的使用需要完成两个操作-创建与初始化,但是在java里面,使用构造器来创建与初始化,他们是在一起的,因此避免了一部分忘记初始化的错误。
输出:
TestClass created
TestClass created
1
从输出结果我们可以看到,其实在创建对象的时候我们利用构造器已经进一步的进行初始化,而不需要特定的运行初始化函数。
如果构造器不传入任何参数,那么,就会创建一个没有任何属性的对象。
需要注意的是:即便我们没有对对象初始化属性,编译器也会为我们初始化,这样就可以减少一定的错误。
我们修改一下上面的代码:
输出:TestClass created
0
null
TestClass created
1
0
null
从输出结果可以看见,对象在初始化的时候,已经把里面的属性初始化。
我们再来修改一下程序,然后看看构造器初始化的参数与对象初始化的参数两者之间有什么不同。
输出:
TestClass created
null
TestClass created
1
null
因为如果需要使用具有param构造器来构造对象,必须初始化param,因此,param是认为的设置,而name这个属性域,则是由编译器自动初始化。
总结:这一章节讨论了创建与初始化对象的一些话题。
这一章节就到这里,谢谢。
-----------------------------------
目录
这个需要讨论的问题源自于c语言,在c语言中,很大部分的错误是忘记了初始化某些东西,他把库的构建的使用需要完成两个操作-创建与初始化,但是在java里面,使用构造器来创建与初始化,他们是在一起的,因此避免了一部分忘记初始化的错误。
package com.ray.testobject; public class Test { public static void main(String[] args) { TestClass t1=new TestClass(); TestClass t2=new TestClass(); } } class TestClass { public TestClass() { System.out.println("TestClass created"); } public TestClass(int param) { System.out.println("TestClass created"); System.out.println(param); } }
输出:
TestClass created
TestClass created
1
从输出结果我们可以看到,其实在创建对象的时候我们利用构造器已经进一步的进行初始化,而不需要特定的运行初始化函数。
如果构造器不传入任何参数,那么,就会创建一个没有任何属性的对象。
需要注意的是:即便我们没有对对象初始化属性,编译器也会为我们初始化,这样就可以减少一定的错误。
我们修改一下上面的代码:
package com.ray.testobject; public class Test { public static void main(String[] args) { TestClass t1 = new TestClass(); TestClass t2 = new TestClass(1); } } class TestClass { private String name;//增加属性 private int id;//增加属性 public TestClass() { System.out.println("TestClass created"); System.out.println(id); System.out.println(name); } public TestClass(int param) { System.out.println("TestClass created"); System.out.println(param); System.out.println(id); System.out.println(name); } }
输出:TestClass created
0
null
TestClass created
1
0
null
从输出结果可以看见,对象在初始化的时候,已经把里面的属性初始化。
我们再来修改一下程序,然后看看构造器初始化的参数与对象初始化的参数两者之间有什么不同。
package com.ray.testobject; public class Test { public static void main(String[] args) { TestClass t1 = new TestClass(); TestClass t2 = new TestClass("1"); } } class TestClass { private String name; public TestClass() { System.out.println("TestClass created"); System.out.println(name); } public TestClass(String param) {//修改了param 的类型 System.out.println("TestClass created"); System.out.println(param); System.out.println(name); } }
输出:
TestClass created
null
TestClass created
1
null
因为如果需要使用具有param构造器来构造对象,必须初始化param,因此,param是认为的设置,而name这个属性域,则是由编译器自动初始化。
总结:这一章节讨论了创建与初始化对象的一些话题。
这一章节就到这里,谢谢。
-----------------------------------
目录
相关文章推荐
- Java第四次上课博文动手动脑
- Ubuntu下Java环境配置
- String的一些总结(JAVA)
- 基于spring websocket+sockjs实现的长连接请求
- java实验报告(实验五)
- Spring 事物
- java多线程
- java快速排序
- protobuf-实践篇
- SpringAOP拦截Controller,Service实现日志管理(自定义注解的方式)
- SrpingMVC 拦截器
- Java语言基础之静态绑定and动态绑定
- Java中String类的length()、charAt()、getChars()、replace()、toUpperCase()、toLowerCase()、trim()、toCharArray()使用说明
- hadoop2.6.0+hive1.2启动报错java.lang.IncompatibleClassChangeError
- 从MVC到前后端分离
- hadoop2.6.0+hive1.2启动报错java.lang.IncompatibleClassChangeError
- java静态代理与动态代理的区别
- 01 筛选法求素数
- java之log4j的配置
- java通过JDBC链接SQLServer2012