构造方法:

构造方法与方法的区别:

构造方法要与类名相同,无返回类型,在初始化的时候调用。构造方法可以重载

方法最好与类名不同,对象调用,静态方法可用类名.方法()

 构造方法不能手工调用,是在创建实例时被系统自动调用

—一个类可以没有构造方法(隐士无参的构造方法),也可以有多个构造方法,他们构成重载关系

—如果定义了有参的构造方法,就会屏蔽掉系统无参的构造方法

—构造方法不能被继承

 

构造方法的作用与使用场合:

1.当我们在创建一个类的实例时,给字段付初值

2.简化为类字段赋值的代码

 

 

 

以下来自:http://www.blogjava.net/mirenxiaoxiao/archive/2010/11/12/337918.html

 构造器和方法在下面三个方面区别:修饰符,返回值,命名。

      1。和方法一样,构造器可以有任何访问的修饰: public, protected, private或者没有修饰(通常被package 和 friendly调用). 不同于方法的是,构造器不能有以下非访问性质的修饰: abstract, final, native, static, 或者 synchronized。
        2。返回类型也是非常重要的。方法能返回任何类型的值或者无返回值(void),构造器没有返回值,也不需要void。
        3。两者的命名。构造器使用和类相同的名字,而方法则不同。按照习惯,方法通常用小写字母开始,而构造器通常用大写字母开始。构造器通常是一个名词,因为它和类名相同;而方法通常更接近动词,因为它说明一个操作。

    构造方法和方法中this和supper的用法区别: 
     "this"的用法 
     构造器和方法使用关键字this有很大的区别。方法引用this指向正在执行方法的类的实例。静态方法不能使用this关键字,因为静态方法不属于类的实  例,所以this也就没有什么东西去指向。构造器的this指向同一个类中,不同参数列表的另外一个构造器,

package com.newone.numb1;
public class Student {
public int number;
public String name;
public String tel;
public String address;
//构造方法
public Student(int num,String name,String tel,String address)
{
this.number=num;
this.name=name;
this.tel=tel;
this.address=address; 
}
//构造方法重载
public Student()
{
number=10001;
//  this(1001,"abc","10010","didian");
}
//方法
public void showInfo()
{
System.out.println("编号:"+number);
System.out.println("姓名:"+name);
System.out.println("联系方式:"+tel);
System.out.println("地址:"+address);
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Student stu=new Student(10010, "zyw", "10086", "移动大厦");
stu.showInfo();
Student stu2=new Student();
stu2.showInfo();
/*输出:
 编号:10001
                               姓名:null
                               联系方式:null
                               地址:null
 * */
}
}
 
关键子 super调用超类
Super.父类方法;
 
练习题:
定义一个Book类,有书名,页数等属性,构造方法赋值,页数<200输出error
定义一个BookTest类,输出其信息
package com.newone.numb1;
 
public class Student {
public int number;
public String name;
public String tel;
public String address;
//构造方法
public Student(int num,String name,String tel,String address)
{
this.number=num;
this.name=name;
this.tel=tel;
this.address=address; 
}
//构造方法重载
public Student()
{
number=10001;
//  this(1001,"abc","10010","didian");
}
//方法
public void showInfo()
{
System.out.println("编号:"+number);
System.out.println("姓名:"+name);
System.out.println("联系方式:"+tel);
System.out.println("地址:"+address);
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Student stu=new Student(10010, "zyw", "10086", "移动大厦");
stu.showInfo();
Student stu2=new Student();
stu2.showInfo();
/*输出:
 编号:10001
                               姓名:null
                               联系方式:null
                               地址:null
 * */
}
}
BookTest 类代码
package com.gouzao.method;
public class BookTest {
public static void main(String[] args) {
// TODO Auto-generated method stub
Book book=new Book("围城", 180);
book.detail();
}
}