------- android培训、java培训、期待与您交流! ----------
1. Java 构造函数
构造函数是一种特殊的方法,对象一建立就会调用与之对应的构造函数。
构造函数的作用:可以用于给对象进行初始化。
构造函数可以重载,这样就可以以多种方式创建对象,列如:
class Person {
private String name;
private int age;
Person(String name){
this.name=name;
}
Person(int age){
this.age=age;
}
}
在创建Person类的对象时,可以根据需要选择其中一个构造函数,如new Person(“Lisi”)或者
new Person(20);另外如果在类中没有定义任何构造函数,还可以使用new Person()创建一个
对象,此时采用的构造方法Person()是一个默认构造函数,这个构造函数是系统默认给该类
的,只有当类中没有定义构造函数式才会有默认构造函数。
构造函数与一般函数的不同:
a. 在写法上与一般函数在写法上不同,构造函数的名称与类名相同,并且没有返回值。b. 在功能上也不同,构造函数在对象建立时,就给对象初始化。而一般方法只有在调用
时才执行,给对象添加功能。
c. 一个对象建立,构造函数只运行一次,而一般方法可以被多次调用。
2. 构造代码块
作用:给对象进行初始化。对象一建立就运行,而且优先于构造函
和构造函数的区别:构造代码块是给所有对象进行统一初始化,
而构造函数是给对应的对象初始化。
从上面可以看出,当new Students("Lisi")时,首先执行的是构造代码块{...}中的代码,然后
才执行的是Students(String name){...}中的代码。同理,当new Students(30)时,首先执行的是构造代码块{...}中的代码,然后才执行的是Students(int age){...}中的代码。
可见当new Students()时,先运行的是构造代码块中的内容,然后才是Students(){...}构造函数。
如果age在类中已经显示初始化,情况又不一样。
可见,当new Students()时,首先执行的是显示初始化,然后是构造代码块,
最后才是构造函数。
3.静态构造代码块
格式为:
static
{
静态代码块中的执行语句。
}
特点:随着类的加载而执行,只执行一次,并优先于主函数。用于给类进行初始化的。
4. 分析:当创建一个对象是时,各个部分的执行顺序
class Person
{
private Person(){}
private String name = "hah";
private int age;
private static String country = "cn";
Person(String name,int age)
{
this.name = name;
this.age = age;
}
{
System.out.println(name+".."+age);
}
public void setName(String name)
{
this.name = name;
}
public void speak()
{
System.out.println(this.name+"..."+this.age);
}
public static void showCountry()
{
System.out.println("country="+Person.country);
Person.method();
}
public static void method()
{
System.out.println("method run");
}
}
class PersonDemo
{
public static void main(String[] args)
{
Person p = new Person("zhangsan",20);
p.setName("lisi");
new Person();
}
}
Person p = new Person("zhangsan",20);
该句话都做了什么事情?
a,因为new用到了Person.class.所以会先找到Person.class文件并加载到内存中。b,执行该类中的static代码块,如果有的话,给Person.class类进行初始化。
c,在堆内存中开辟空间,分配内存地址。
d,在堆内存中建立对象的特有属性。并进行默认初始化。
e,对属性进行显示初始化。
f,对对象进行构造代码块初始化。
g,对对象进行对应的构造函数初始化。
h,将内存地址付给栈内存中的p变量。
相关推荐
实验_构造函数与析构函数.doc实验_构造函数与析构函数.doc实验_构造函数与析构函数.doc
java中的构造代码块和构造函数.pdf
18_构造函数 视频文件(javase)
描述继承中子类与父类构造函数,静态块的执行顺序
CGoods_2_构造函数重载.cpp
14_构造函数 视频文件(javase)
Java的静态代码块、非静态代码块、构造函数的简单的java代码
8.java构造函数.zip8.java构造函数.zip8.java构造函数.zip8.java构造函数.zip8.java构造函数.zip8.java构造函数.zip8.java构造函数.zip8.java构造函数.zip8.java构造函数.zip8.java构造函数.zip8.java构造函数.zip8....
导数的应用4_构造函数证明数列不等式.doc
是关于java Spring框架中“耦合性和控制反转(IOC)、依赖注入、属性注入、构造函数注入”等原理。 pring框架的原理和开发流程。
构造函数与析构函数相关编程基本代码与具体讲解ppt
1 静态变量,静态代码块(类加载时执行,类不加载不执行) 2 实例变量,实例代码块(创建对象时才执行,不创建对象不执行) 3 构造函数,(创建对象时执行完2后再执行构造函数,不管构造函数是public还是private...
Java_旺旺老师_构造方法与“析构方法”
最新版TypeScript教程——15.14_构造函数和this(Av800627522,P15).rar
本人用java写的构造者模式的小demo,源码里有详细的注释,保证一看就懂。欢迎交流指点。
在Java中,构造函数的访问级别通常是public, 它提供了一个构造该类对象的接口。可是你知不知道,把构造函数的级别设为private, 有一些特别用处。
java 静态_非静态 字段_方法_代码块 子类父类构造_初始化顺序! 三个class 让你清清楚楚 第一个class java代码如下: package initialOrder; class Parent { // 静态变量 public static String p_StaticField...
Java泛型构造函数(学习资料);Java泛型构造函数(学习资料);Java泛型构造函数(学习资料)Java泛型构造函数(学习资料);
如果有此方法函数,通常作为类的第一个方法函数,有点像C++等语言里的构造函数。 class Ca: def __init__(self, v): # 注意前后各两个下划线 self.name = v def pr(self): print "a--->", self.name ia = Ca(...
主要介绍了Java构造代码块,静态代码块,结合实例形式分析了Java构造代码块,静态代码块的功能、原理、用法及操作注意事项,需要的朋友可以参考下