Java构造函数
来源:互联网 发布:c语言 char 中文 编辑:程序博客网 时间:2024/05/18 14:24
1.引出构造器
创建一个学生对象的时候,代码如下:
Student s1 = new Student();
这个代码特别像:在调用一个方法名称为Student的无参数方法.
我们把这种特殊的方法,称之为构造方法,构造器(构造函数/构造子:Constructor).但是我们发现在Student类中,却找不到该构造方法,找不到,却又没有报错.编译器在编译源文件的时候,会创建一个缺省的构造器.
2.构造器的作用
1):创建对象,必须和 new 一起使用.
2):完成对象的初始化操作.
2):完成对象的初始化操作.
3.构造器的特点
1):构造器的名称和当前所在类的名称相同.
如果构造器名称叫XXX, new XXX();你看出来创建的是什么类型的对象吗?
2):禁止定义返回类型,千万不要使用void作为返回类型. void Student(){}这是普通方法.
假设需要写返回类型,也应该这样写:Student Student(); 既然所有的返回类型都和所在类名相同,何必再写.
3):在构造器中,不需要使用return语句.
其实构造器是有返回值的,返回的是当前创建对象的引用.
如果构造器名称叫XXX, new XXX();你看出来创建的是什么类型的对象吗?
2):禁止定义返回类型,千万不要使用void作为返回类型. void Student(){}这是普通方法.
假设需要写返回类型,也应该这样写:Student Student(); 既然所有的返回类型都和所在类名相同,何必再写.
3):在构造器中,不需要使用return语句.
其实构造器是有返回值的,返回的是当前创建对象的引用.
4.编译器创建构造器的特点
1):符合构造器特点.
2):无参数的.
3):无方法体.
4):如果类A没有使用public修饰,则编译器创建的构造器也没有public修饰.
使用了public修饰,则编译器创建的构造器也使用public修饰.
2):无参数的.
3):无方法体.
4):如果类A没有使用public修饰,则编译器创建的构造器也没有public修饰.
使用了public修饰,则编译器创建的构造器也使用public修饰.
构造器:如果我们没有显示提供构造器,则编译器在编译时创建一个缺省的构造器.
但是,如果我们显示定义了一个构造器,则编译器不再创建默认构造器.
------------------------------->推论:某一个类,至少存在一个构造器.
但是,如果我们显示定义了一个构造器,则编译器不再创建默认构造器.
------------------------------->推论:某一个类,至少存在一个构造器.
例1:对象创建调用构造器.创建一个PersonDemo.java文件
class Person //Person类 {Person(){ //person类的构造器System.out.println("构造器执行");}}class PersonDemo{public static void main(String[] args){Person p = new Person(); //创建Person类对象其实就是在调用Person类的构造器方法}}运行结果
例2:在构造器中进行初始化操作.同样创建一个PersonDemo.java文件
class Person //Person类 {String name;Person(String n){ //person类带参数的构造器System.out.println("构造器执行");name=n; //对Person进行初始化操作}}class PersonDemo{public static void main(String[] args){Person p = new Person("张三"); //创建Person类对象其实就是在调用Person类的构造器方法System.out.println(p.name); //现在打印Person对象的name已经被初始化}}
运行结果
5.构造器的重载(Overload):
避免了在同一个类中,相同功能的方法名字不同的问题.判断依据:两同一不同.
-------------------------------------------------------
构造器是一种特殊的方法,也可以存在重载.
例3:构造器的重载.同样创建一个PersonDemo.java文件
class Person //Person类 {String name;Person(){ //person类无参数的构造器System.out.println("无参数的构造器执行");}Person(String n){ //person类带参数的构造器System.out.println("有参数的构造器执行");}}class PersonDemo{public static void main(String[] args){Person p1 = new Person(); //创建Person类对象调用Person类的有参数构造器方法Person p2 = new Person("张三"); //创建Person类对象调用Person类的有参数构造器方法}}运行结果
阅读全文
0 0
- js构造函数与JAVA构造函数
- java构造函数调用构造函数
- Java构造函数中调用构造函数
- Java 构造函数
- JAVA 基础 - 构造函数
- JAVA构造函数
- java构造函数
- java构造函数
- java构造函数
- java构造函数
- Java构造函数
- java的构造函数
- java基础知识-构造函数
- java---函数-构造--拷贝
- java 继承 构造函数
- java 构造函数
- java-构造函数
- JAVA 构造函数
- lnmp环境搭建好后,,,,解析php文件报错 502
- maven新建后没有src/main/java解决
- svn中文件冲突
- 单例模式
- Redis 3.0 Windows 安装步骤
- Java构造函数
- 生活游记——泰国自由行
- 使用ffmpeg 解码mp4文件的时候出现 Error splitting the input into NAL units.
- linux 默认打开index.php
- 语法分析注意点
- 双机热备Nginx+Keepalived搭建HA高可用负载均衡环境
- Quartz源码解析 ---- 触发器按时启动原理
- 13.java语言基础-数组的动态初始化和内存分析
- url参数编码加密传输