黑马程序员技术交流社区
标题:
关于初学JAVA构造函数的个人总结
[打印本页]
作者:
n361204357
时间:
2015-7-16 22:37
标题:
关于初学JAVA构造函数的个人总结
<P>/*
构造函数:
原因:新创建对象,要利用setXxx来赋值。构造函数,创建对象就可以被虚拟机自动调用,直接赋值。
格式:
1,方法名和类名相同;
2,没有返回类型声明;
3,不能用return返回一个值;
第一种格式:
class Person
{}
第二种格式;
class Person
{
public Person()
}
作用:用于给对象进行初始化。
注意事项;
1,构造代码块优先于构造函数;
2,构造代码块用于给所有对象进行初始化,构造函数只能给对应对象进行初始化。
3,构造函数只能使用一次。
4,如果没有构造函数,系统会默认创建一个无参的,如果自己建立了一个,则系统不会建立。
注意事项:
A:如果你没有给出构造方法,那么,系统会默认给出一个无参构造方法。
public Person(){}
B:假如你给了,会是什么情况呢?
只要你给出了构造方法,系统将不再提供无参构造。
是建立一个有参的构造 那么默认的就会被取消 你使用 Student s =new Student();建立对象时 会报错的!
推荐做法:请永远手动给出无参构造。
C:构造方法重载
其实就是构造方法接收不同的参数。
给成员变量赋值:
A:通过set方法。推荐使用。
B:通过构造方法。
C:定义时手动赋值
代码块:
就是由{}括起来的代码。
分类:
定义在方法中的代码块,叫局部代码块。作用是:让变量尽可能早的从内存中消失,提高效率。
定义在方法外的代码块,叫构造代码块。作用是:把所有构造方法中的共同的内容定义在构造代码块中。
*/
class Person
{
private int age;
//构造代码块 ,用于给所有对象初始化,因为对象具有共性特征。
{
System.out.println("构造代码块优先执行");
}
public Person() //无参;
{
System.out.println("无参");
}
public Person(int a)
{
age=a;
System.out.println(age);
}
}
class uu1
{
public static void main(String[] args)
{
Person p=new Person(20);
//p.Person(20);//会报错 ,因为构造函数只能用被这个对象用一次
}
}</P>
<P> </P>
<P>以上总结是我个人总结,我是这样总结的,可能有很多不到之处,也只是个人见解。</P>
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2