- <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>
复制代码
|
|