构造方法:
构造方法与方法的区别:
构造方法要与类名相同,无返回类型,在初始化的时候调用。构造方法可以重载
方法最好与类名不同,对象调用,静态方法可用类名.方法()
构造方法不能手工调用,是在创建实例时被系统自动调用
—一个类可以没有构造方法(隐士无参的构造方法),也可以有多个构造方法,他们构成重载关系
—如果定义了有参的构造方法,就会屏蔽掉系统无参的构造方法
—构造方法不能被继承
构造方法的作用与使用场合:
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();
}
}