10.java 构造方法_131212

来源:互联网 发布:真人赌博软件 编辑:程序博客网 时间:2024/05/22 08:07


构造方法:

构造方法与方法的区别:

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

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

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

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

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

—构造方法不能被继承

 

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

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();

}

}

0 0