构造函数的相关知识
来源:互联网 发布:db2执行sql脚本有换行 编辑:程序博客网 时间:2024/06/05 16:24
构造函数的作用: 给对应的对象进行初始化。
构造函数的格式:
修饰符 函数名(形式参数列表){
初始化的语句;
}
构造函数要注意的细节:
1. 构造函数是没有返回值类型的。
2. 构造函数的函数名必须与类名一致。
3. 构造函数并不是由我们手动调用的, 构造函数是在创建对应对象的时候由jvm主动调用的(每创建一个对象就会调用一次构造函数)。
4. 如果一个类没有显式的添加一个构造函数,那么java编译器会为该类添加一个无参的构造函数。
5. 如果一个类已经显式的添加一个构造函数,那么java编译器则不会再为该类添加一个无参的构造函数。
6. 构造函数是可以以函数重载的形式存在多个的。
疑问1 :我们现在知道创建对象的时候,jvm需要调用到对应的构造方法,那么以前我们没有学构造方法,那么jvm还会调用到构造方法吗?而且构造方法存在吗?
存在构造方法的, 但是不是java虚拟机添加的,是java编译器添加的。
疑问2:java编译器添加的无参构造函数的修饰符是什么?
无参的构造函数的权限修饰符是与类名一致的。
如何反编译: 反编译可以使用jdk给我们提供的开发工具---》javap
javap -c -l -private class文件
需求: 使用一个java类描述一个婴儿。
问题: 在现实生活中有两种婴儿,一出生就有姓名与身份证编号(白户),
一种出生之后才有身份证编号与姓名(黑户)。
//婴儿类
class Baby{
int id; //身份证编号
String name; // 名字
//无参的构造函数
public Baby(){
System.out.println("无参的构造函数调用了..");
}
//带参构造函数
public Baby(int i , String n){
id = i ;
name = n;
System.out.println("两个参数构造函数调用了..");
}
public void cry(){
System.out.println("哇哇哇....");
}
}
class Demo2 {
public static void main(String[] args)
{
/*
Baby b1 = new Baby(); //黑户
b1.id = 110;
b1.name= "狗娃";
System.out.println("身份证:"+ b1.id+" 姓名:"+ b1.name);
*/
new Baby();
new Baby();//虚拟机自动调用,这里调用了两次
Baby b2 = new Baby(110,"狗剩");//白户
System.out.println("身份证:"+ b2.id+" 姓名:"+ b2.name);
}
}
/*
需求: 使用java类描述一个员工,员工具备的公共属性: id、 name、 age. 公共行为:上班 要求:一旦创建一个员工对象,那么该员工对象要马上具备相应的属性值。
*/
class Emp{
//事物的公共的属性
int id;
String name;
int age;
//构造函数
public Emp(int i , String n ,int a){
id =i;
name = n;
age = a;
}
//上班
public void work(){
System.out.println(name+" 好好上班!!");
}
}
class Demo3
{
public static void main(String[] args)
{
Emp e = new Emp(110,"狗娃",18);
System.out.println("编号: "+ e.id+" 姓名:"+ e.name+" 年龄:"+ e.age);
}
}
- 构造函数的相关知识
- 拷贝构造函数相关知识总结
- 函数的相关知识
- 函数的相关知识
- 拷贝构造函数的相关
- 虚函数的相关知识
- 虚函数相关的知识
- 继承的构造函数的知识遗漏
- java 中的构造函数的知识小结
- 关于c++中构造函数的知识
- 函数的相关知识及函数指针
- 1.构造函数和复制构造函数相关的初始化
- C++构造函数相关的一点体会
- RegExp构造函数的相关属性
- 继承和构造器相关知识的个人理解
- wait和waitpid函数的相关知识
- 黑马程序员---函数的相关知识
- linux的shell函数相关知识
- KEIl工具之scatter file分散加载文件1
- 简单单调队列原理
- eclipse最有用快捷键整理
- 关于CSS分页栏
- 【LeetCode】015.3Sum
- 构造函数的相关知识
- Android 实现按两次返回键退出程序
- <Head First 设计模式>:复合模式:duck
- 接口
- cf437C 贪心算法
- HDOJ pi 2179
- .Net网络编程——服务端获取客户端连接
- [CentOS]CentOS7安裝SSH教學
- Android 获取本地外网IP、内网IP、计算机名等信息