JAVA II GATECH EDX

本文详细讲解了Java中的构造函数,包括默认构造函数、参数化构造函数及其作用。此外,还讨论了实例变量、可见性修饰符、静态与非静态方法的选择,并涉及了继承、覆盖方法以及`final`关键字在类和方法中的应用。
摘要由CSDN通过智能技术生成

Java II

Instance Variables

Visibility Modifiers (public and private)

public class Insect{
	//instance variables
	private double weight;
	private int x;
	private int y;

	//test method
	public static void main(String[] args){
		Insect buzz1=new Insect();
		Insect buzz2=new Insect();
	}
}

the default constructor 默认构造函数

writing constructor:

Note that the constructor name must match the class name, and it cannot have a return type (like void).

构造方法是一种特殊的方法,具有以下特点。
(1)构造方法的方法名必须与类名相同。
(2)构造方法没有返回类型,也不能定义为void,在方法名前面不声明方法类型。
(3)构造方法的主要作用是完成对象的初始化工作,它能够把定义对象时的参数传给对象的域。

如果类中没有构造函数,编译器会自动创建一个默认构造函数。

java中的构造方法是一种特殊类型的方法,用于初始化对象。Java构造函数在对象创建时被调用。 它构造值,即提供对象的数据,这是为什么它被称为构造函数

//constructor
//create a Main class
public class Main1{
	int x;   //create a class attribute.

	//create a class constructor for the Main class
	public Main1(){
		x=5;  //set the initial value for the class attribute
	}

	
	public static void main(String[] args){
		Main1 myObj=new Main1();  
		//the above create an object of class Main(this will call the constructor)

		System.out.println(myObj.x);
	}
}

Java构造函数有两种:default constructor 和parameterized constructor 

没有参数的构造函数称为默认构造函数default constructor.

//创建一个无参数no-args的构造函数
public class Bike1{
	Bike1(){          //创建了无参数的构造函数  //记得加上() 构造函数是函数
		System.out.println("Bike is created");
	}

	public static void main(String[] args){
		Bike1 b=new Bike1(); //这里创建对象时就会调用构造函数 所以结果打印出了Bike is created
	}


}

default constructor默认构造函数:

//如果类中没有构造函数,则编译器会自动创建一个默认构造函数
class Student3{
	int id;
	String name;

	void display(){
		System.out.println(id+" "+name);
	}

	public static void main(String[] args){
		Student3 s1=new Student3();
		Student3 s2=new Student3();
		s1.display();
		s2.display();	

	}
}

//运行结果为0 null 虽然代码没有创建构造函数 但是编译器自动提供了一个默认构造函数。String默认值为null,int默认值为0

解释: 在上面的类中,代码中并没有创建任何构造函数,但编译器自动提供了一个默认构造函数。默认构造函数分别为字段:id 和 name 分别提供了0null值。

//构造一个class 叫做student3
//给student3这个类初始化int id和String name
//student3类中构造一个method 叫做display。display没有返回值,display要打印出id 和name
//调用main函数,给student3这个类创建两个对象 s1和s2
//s1和s2调用display方法,这时候会调用构造函数。虽然代码中没有构造函数,但是编译器自动提供了一个默认构造函数default constructor.由于没有给id和name赋值,输出的结果是int和string的默认值0和null。

class Student3{
	int id;
	String name;

	void display(){
		System.out.println(id+" "+name);
	}

	public static void main(String[] args){
		Student3 s1=new Student3();
		Student3 s2=new Student3();
		s1.display();
		s2.display();
	}
}

构造函数可以看这个链接 解释得够多了

Java构造器(构造方法) -Java教程

参数化构造函数

具有参数的构造函数称为参数化构造函数。

问题: 为什么使用参数化构造函数?
回答: 参数化构造函数用于为不同对象提供不同初始化的值。

//有参数的构造函数,叫做参数化构造函数
//为什么要有参数 是为了给不同的对象提供不同的初始化值


//先构造一个Student4的类
//Student4类有变量int id和String name
//新建构造函数Student4,有参数int i和string n。将i和n赋值给id和name
//新建display函数,打印出id和name
//调用main函数,新建两个实例s1和s2,s1和s2带有不同的参数。
//s1和s2调用display函数,那么打印出来的也是不同的id和name

class Student4{
	int id;
	String name;
	
	Student4(int i,String n){
		id=i;   //也就是说,后面要将1033赋值给id,Jay赋值给name
		name=n;
	}

	void display(){   //display函数 记得加上()
		System.out.println(id+" "+name);
	}

	public static void main(String[] args){
		Student4 s1=new Student4(1033,"Jay");    
//这里实例对象带参数了,所以前面需要带参数的构造函数。这样每个实例对象都有不同的初始化变量值
		Student4 s2=new Student4(1301,"Peter");
		s1.display();
		s2.display();
	}

}

问题:构造函数有返回值 ?

回答: 是的,构造函数返回当前类的实例(不能指定返回值类型,但它会返回一个值)。

问题2: 可以构造函数执行其他任务而不是初始化?

回答: 是的,比如:对象创建,启动线程,调用方法等。你可以像在方法中执行的任何操作一样,在构造函数中也可以做到这些。

构造函数可以重载overloading,但不能被重写。

带参数的构造函数:

//新建insect class
//instance varible X Y和Weight
//新建构造函数,包含参数initX initY和initWeight
//调用main函数,创建两个不含参数的对象bug1 bug2(会报错),和两个含参数的对象buzz1,buzz2

public class Insect2{
	int X;
	int Y;
	double Weight;

	public Insect2(int initX,int initY,double initWeight){
		X=initX;
		Y=initY;
		Weight=ini
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值