java中的构造方法与其作用
什么是构造方法呢?
- 方法名和类名相同
- 没有返回值类型,连void都不能写
- 没有具体的返回值
构造方法分为无参构造方法与有参构造方法。
先来看一下最简单的无参构造方法:
Student.java
package com.pr;
public class Student {
public Student(){
System.out.println("这是一个构造方法");
}
}
StudentDemo.java
package com.pr;
public class StudentDemo {
public static void main(String[] args){
Student s = new Student();
}
}
输出结果:这是一个构造方法
把Student.java的4-6行删除了。可以发现StudentDemo.java没有报错。为什么呢?
因为,如果我们没有给出构造方法时,系统会提供一个默认的无参构造方法供我们使用。
有参构造方法
Student.java
package com.pr;
public class Student {
private String name;
private int age;
public Student(){}
public Student(String name){
this.name = name;
}
public Student(int age){
this.age = age;
}
public Student(String name,int age){
this.name = name;
this.age = age;
}
public void show(){
System.out.println("age:"+age+",name:"+name);
}
}
StudentDemo.java
package com.pr;
public class StudentDemo {
public static void main(String[] args){
Student s = new Student();
s.show();
Student s1 = new Student("小明");
s1.show();
Student s2 = new Student(20);
s2.show();
Student s3 = new Student("小明",18);
s3.show();
}
}
输出结果为:
age:0,name:null
age:0,name:小明
age:20,name:null
age:18,name:小明
把Student.java的第6行删除了,发现StudentDemo.java的第5行报错了。为什么呢?
因为,当我们给出了构造方法时,系统就不再提供默认的构造方法供我们使用。
所以,我们最好手动写一下无参的构造方法。
还有需要注意的是,可以看出,构造方法可以被重载。
构造方法的作用:
有了类,就是有了可以重用的代码,但是我怎么产生这个对象呢。必须要实例化这个类(当然这不是唯一产生对象的途径,比如单例模式,但本质上说所有途径都是一样的)。那么就要用到构造方法。即告诉程序我现在要实例化一个对象了,你给我马上分配内存。将内存的首地址赋给我指定的类对象。而且有时候你需要传递参数到函数里面,有了构造函数就方便了。
java中的构造方法与其作用的更多相关文章
- Java中的构造方法总结
Java中的构造方法总结 时间: 2013-11-05 08:49 来源: 未知 作者: 站长部落 点击: 1752 次 今天写代码突然发现Java的构造方法也有不少说法呢,闲来无事,总结一下: ...
- 自己(转)JAVA中toString方法的作用
JAVA中toString方法的作用 因为它是Object里面已经有了的方法,而所有类都是继承Object,所以“所有对象都有这个方法”. 它通常只是为了方便输出,比如System.out.print ...
- Java学习笔记十六:Java中的构造方法
Java中的构造方法 1.使用new+构造方法 创建一个新的对象: 2.构造方法是定义在Java类中的一个用来初始化对象的方法: 3.构造方法与类同名且没有返回值: 4.语法格式: public 构造 ...
- 【Java_基础】Java中Native关键字的作用
本篇博文转载与:Java中Native关键字的作用
- Java中this关键字的作用
转载: 原文地址:http://www.cnblogs.com/lzq198754/p/5767024.html 一.this关键字主要有三个应用: (1)this调用本类中的属性,也就是类中的成员变 ...
- java中关键字volatile的作用
用在多线程,同步变量. 线程为了提高效率,将某成员变量(如A)拷贝了一份(如B),线程中对A的访问其实访问的是B.只在某些动作时才进行A和B的同步.因此存在A和B不一致的情况.volatile就是用来 ...
- Java中Native关键字的作用
初次遇见 native是在 java.lang.Object 源码中的一个hashCode方法: 1 public native int hashCode(); 为什么有个native呢?这是我所要学 ...
- java中的hashcode方法作用以及内存泄漏问题
本文装载:http://hi.baidu.com/iduany/item/6d66dfc9d5f2da1650505870 hashCode()方法的作用&使用分析 一直以来都想写篇文章来说明 ...
- Java中的构造方法
什么是构造方法:每一个类中至少有一个构造方法,它用于创建该类对象,这个和OC中的init有异曲同工之妙. 构造方法的格式:A:方法名与类名相同 B:没有返回值类型,没有void C:没有具体的返回值 ...
随机推荐
- bzoj Usaco补完计划(优先级 Gold>Silver>资格赛)
听说KPM初二暑假就补完了啊%%% 先刷Gold再刷Silver(因为目测没那么多时间刷Silver,方便以后TJ2333(雾 按AC数降序刷 ---------------------------- ...
- TYVJ2032 升降梯上
Description: 开启了升降梯的动力之后,探险队员们进入了升降梯运行的那条竖直的隧道,映入眼帘的是一条直通塔顶的轨道.一辆停在轨道底部的电梯.和电梯内一杆控制电梯升降的巨大手柄.Nescafe ...
- Nginx 配置解析
概述:本篇文章主要对Nginx配置文件中一些常用配置进行了讲解,和如何使用Docker进行安装Nginx.因为该文章是回首在工作闲暇之余整理的,还有待完善,如果有疑义和更好的建议的朋友可以留言给我. ...
- java中静态变量与静态方法的继承(转)
总结: 1.静态变量与静态方法说继承并不确切,静态方法与变量是属于类的方法与变量.而子类也属于超类,比如说Manage extends Employee,则Manage也是一个Employee,所以子 ...
- 在局域网中基于Windows文件共享的git环境搭建
本文的思想是在局域网中用一台电脑作为服务器,在其中建立一个文件夹,作为总的公开版本库.然后将这个文件夹共享,使其他客户机都可以访问,从而进行代码的管理. 一.下载安装文件 1.git核心: git-f ...
- STL之六:map/multimap用法详解
转载于:http://blog.csdn.net/longshengguoji/article/details/8547007 map/multimap 使用map/multimap之前要加入头文件# ...
- springboot初学
首先苦于用ssh.ssm来搭建一个项目,这个基础搭建工作就大概要用半天的功夫才能弄好,想到就头疼,后面听了实验室一位大神的建议,用springboot啊,简单的不止一点点.就顺便学习了下这个神器,果然 ...
- Leetcode 445. 两数相加 II
1.题目描述 给定两个非空链表来代表两个非负整数.数字最高位位于链表开始位置.它们的每个节点只存储单个数字.将这两数相加会返回一个新的链表. 你可以假设除了数字 0 之外,这两个数字都不会以零开头. ...
- Java中JAVA_HOME与CLASSPATH的解析(转)
很多人在初学Java的时候经常会被书中介绍的一堆环境变量的设置搞得头昏脑胀,很多书中都会在初装JDK的时候让他大家设置JAVA_HOME环境变量,在开发程序的时候设置CLASSPATH环境变量,而很多 ...
- MongoDB入门(1)- MongoDB简介
什么是MongoDB NoSQL NoSQL systems are also sometimes called "Not only SQL" to emphasize that ...