我的java学习笔记(5)关于对象构造
2015-03-25 21:42
295 查看
关于对象构造
1.如果多个方法有相同的名字、不同的参数,便产生了重载。寻找重载函数的过程称作重载解析。
2.编译器找不到匹配的参数,或者找出多个可能的匹配,就会参数编译时错误。
3.在构造器中没有显示地给域赋予初值,那么就会被自动地赋为默认值。
4.在编写一个类时,没有编写构造器,那么系统就会提供一个无参数构造器。这个构造器将所有的实例域设置为一个默认值。
5.类中提供了至少一个构造器,但是没有提供无惨的构造器,则在构造对象时如果没有提供参数就会被视为不合法。
6.在执行构造函数之前先执行赋值操作,这样也可通过赋值操作初始化实体域。
7.构造器的第一个语句形如this(),这个构造器将调用同一个类的另一个构造器。
8.还可以通过初始化块的方式来初始化实体域。
9.所以初始化一个对象调用构造器的步骤是:
A.所有数据域被初始化为默认值
B.按照在类声明中出现的次序,依次执行所有域初始化语句和初始化块
C.如果构造器第一行调用了第二个构造器,则执行第二个构造器主体
D.执行这个构造器的主体
实例程序:
import java.util.*;
public class test {
public static void main(String[] args)
{
Employee[] s = new Employee[3];
s[0] = new Employee("a",500);
s[1] = new Employee(600);
s[2] = new Employee();
for(Employee e : s)
{
System.out.println("name = " + e.getName() + ", id = " + e.getId() + " salary =" + e.getSalary());
}
}
}
class Employee
{
private static int nextId;
private int id;
private String name = "";
private double salary;
static
{
Random r = new Random();
nextId = r.nextInt(100000);
}
{
id = nextId;
nextId++;
}
public Employee(String n,double s)
{
name = n;
salary = s;
}
public Employee(double s)
{
this("id:" + nextId,s);
}
public Employee()
{
//empty
}
public String getName()
{
return name;
}
public double getSalary()
{
return salary;
}
public int getId()
{
return id;
}
}
1.如果多个方法有相同的名字、不同的参数,便产生了重载。寻找重载函数的过程称作重载解析。
2.编译器找不到匹配的参数,或者找出多个可能的匹配,就会参数编译时错误。
3.在构造器中没有显示地给域赋予初值,那么就会被自动地赋为默认值。
4.在编写一个类时,没有编写构造器,那么系统就会提供一个无参数构造器。这个构造器将所有的实例域设置为一个默认值。
5.类中提供了至少一个构造器,但是没有提供无惨的构造器,则在构造对象时如果没有提供参数就会被视为不合法。
6.在执行构造函数之前先执行赋值操作,这样也可通过赋值操作初始化实体域。
7.构造器的第一个语句形如this(),这个构造器将调用同一个类的另一个构造器。
8.还可以通过初始化块的方式来初始化实体域。
9.所以初始化一个对象调用构造器的步骤是:
A.所有数据域被初始化为默认值
B.按照在类声明中出现的次序,依次执行所有域初始化语句和初始化块
C.如果构造器第一行调用了第二个构造器,则执行第二个构造器主体
D.执行这个构造器的主体
实例程序:
import java.util.*;
public class test {
public static void main(String[] args)
{
Employee[] s = new Employee[3];
s[0] = new Employee("a",500);
s[1] = new Employee(600);
s[2] = new Employee();
for(Employee e : s)
{
System.out.println("name = " + e.getName() + ", id = " + e.getId() + " salary =" + e.getSalary());
}
}
}
class Employee
{
private static int nextId;
private int id;
private String name = "";
private double salary;
static
{
Random r = new Random();
nextId = r.nextInt(100000);
}
{
id = nextId;
nextId++;
}
public Employee(String n,double s)
{
name = n;
salary = s;
}
public Employee(double s)
{
this("id:" + nextId,s);
}
public Employee()
{
//empty
}
public String getName()
{
return name;
}
public double getSalary()
{
return salary;
}
public int getId()
{
return id;
}
}
相关文章推荐
- JAVA学习笔记3--类,对象,变量,方法,构造方法,this,引用类型
- Java学习笔记~关于类与对象的总结01
- Android(java)学习笔记188:关于构造代码块,构造函数的一道面试题(华为面试题)
- 【学习笔记04】java面向对象-构造函数、构造代码块
- Java学习笔记12(面向对象五:构造方法、this再探)
- Java学习笔记(84)----------关于 Java 对象序列化你不知道的 5 件事
- Java学习笔记【对象构造】
- java对象序列化学习笔记
- java学习笔记(四)----对象、数组作为参数传递,静态变量、静态方法的使用,内部类,使用文档注释
- java对象序列化学习笔记
- 持有对象的引用 -Java学习笔记(33)
- java对象序列化学习笔记
- java学习笔记,关于java的一些基础知识,适用于初学者,第一节
- [学习笔记]关于JavaBran的部署--部署class
- Java 对象的 toString() 方法 -Java 学习笔记 (16)
- JAVA2核心技术卷1 学习笔记3 对象和类
- 关于java打印功能的最简单实现的学习笔记
- Java面对对象编程---学习笔记(序目)
- Inside The C++ Object Model 学习笔记 -- 关于对象
- java学习笔记,试用初学者,第二节,关于内存地址分配问题