Java-类-构造函数
时间:2020-02-23 14:36:25 来源:igfitidea点击:
在本教程中,我们将学习Java编程语言中的类的构造函数。
到目前为止,我们已经学习了如何创建类,如何在类内部添加成员变量以及如何在类中添加方法。
现在让我们谈谈构造函数。
什么是构造函数?
构造函数是类内部的一种特殊方法,其名称与类相同,并且有助于初始化类的对象。
构造函数没有返回类型,甚至没有" void"。
构造函数的隐式返回类型是类类型本身。
如果我们没有明确向类添加构造函数,则Java编译器会将默认构造函数添加到该类。
构造函数语法
class NameOfTheClass { //some member variables //constructor NameOfTheClass() { //some code goes here... } //some methods of the class }
在下面的示例中,我们将创建一个Happy类,该类具有一个构造函数,该构造函数在创建该类的对象时会打印一条消息。
class Happy { //constructor Happy() { System.out.println("Hello from the Happy constructor."); } } //Our main class class Example { public static void main(String[] args) { Happy obj = new Happy(); } }
Hello from the Happy constructor.
带参数的构造函数
class NameOfTheClass { //constructor with parameters NameOfTheClass(list_of_params) { //some code... } }
在以下示例中,我们修改了上面的Happy类以采用参数。
class Happy { //constructor Happy(boolean isHappy) { if (isHappy == true) { System.out.println("I am happy :)"); } else { System.out.println("I am sad :("); } } } //Our main class class Example { public static void main(String[] args) { //code is not working... boolean amIHappy = false; System.out.println("First run: when code is not working..."); Happy obj = new Happy(amIHappy); //after sometime... code is working... System.out.println("After sometime second run: when code is working..."); amIHappy = true; Happy obj2 = new Happy(amIHappy); } }
First run: when code is not working... I am sad :( After sometime second run: when code is working... I am happy :)
因此,在上面的代码中,我们创建了带有参数的构造函数" Happy"。
然后,我们实例化Happy类的一个对象,并传递一个布尔型的amIHappy变量。
例
在下面的示例中,我们将修改先前教程中一直在使用的PackagingBox
类。
我们将使用构造函数初始化对象。
/** * The PackagingBox Class */ class PackagingBox { //member variables private double length; private double breadth; private double height; public double volume; double weight; double price; //constructor PackagingBox(double length, double breadth, double height, double weight, double price) { //we are setting the length, breadth, height, weight, price of the box this.length = length; this.breadth = breadth; this.height = height; this.volume = volume; this.weight = weight; this.price = price; //compute the volume this.computeVolume(); } //methods //---- get and set length public void setLength(double length) { this.length = length; } public double getLength() { return this.length; } //---- get and set breadth public void setBreadth(double breadth) { this.breadth = breadth; } public double getBreadth() { return this.breadth; } //---- get and set height public void setHeight(double height) { this.height = height; } public double getHeight() { return this.height; } //---- get and set weight public void setWeight(double weight) { this.weight = weight; } public double getWeight() { return this.weight; } //---- get and set price public void setPrice(double price) { this.price = price; } public double getPrice() { return this.price; } //---- compute and get volume public void computeVolume() { this.volume = this.length * this.breadth * this.height; } public double getVolume() { return this.volume; } } /** * The main class. */ class ObjectExample { public static void main(String[] args) { //creating an object of the class PackagingBox myBox = new PackagingBox(10, 20, 30, 120, 299); //get the values System.out.println("Dimension of the box:"); System.out.println("Length: " + myBox.getLength()); System.out.println("Breadth: " + myBox.getBreadth()); System.out.println("Height: " + myBox.getHeight()); System.out.println("Weight, Volume and Price of the box:"); System.out.println("Weight: " + myBox.getWeight()); System.out.println("Volume: " + myBox.getVolume()); System.out.println("Price: " + myBox.getPrice()); } }
Dimension of the box: Length: 10.0 Breadth: 20.0 Height: 30.0 Weight, Volume and Price of the box: Weight: 120.0 Volume: 6000.0 Price: 299.0