java构造方法与方法的区别
来源:互联网 发布:java中import的用法 编辑:程序博客网 时间:2024/05/17 08:35
构造方法是定义在java类中的一个用来初始化对象的函数,其方法名和类名相同,但是通常不显示地它,在创建类的一个实例时,构造方法就像一个方法一样被调用,因为从来不显示地调用它,所以无法访问其返回值,即构造函数不返回值。
构造方法的小例子:
Public class person{ Int id ; Int age; Person(int n, int i){ Id = n; Age = I; }}
我们从上面的说明中,可以看出构造方法和方法是有区别的,主要表现在一下方面:
1、 修饰符:构造方法像普通方法一样,可以有任何的访问修饰符public、protected、private,但是不能有abstract、final、static等非访问修饰符;
2、 返回值:构造方法没有返回值,void也不行;
3、 命名:构造方法和类具有相同的名字,而类最好不要。
4、 编写:构造方法可以自己编写也可以系统默认,显然普通方法只能自己编写;
5、 调用:在创建对象或是调用静态成员变量时,首先会调用构造方法,是系统自动调用,而普通的方法只能实例化完对象,才能用对象调用。
上面只是简单的对比了一下构造方法和普通方法,下面我们在具体看一下。
(1) this用法:
对于方法引用this指向正在执行方法的类的实例;静态方法不能使用this关键字;构造方法指向这个对象的另一个构造方法,示例如下:
Public class Person{ String name; int age; String sex; Person (string n, int g , string s){ name = n; age = g; sex = s; } Person ( string n ,I nt g){ This(n,g,”男”) } Public Static void main(String args[] ){ Person p1 = new Person(“hua”,20,”女”); Person p2 =new Person(“yang”,20); System.out.println(p1.name +”,” +p1.age +”,”+ p1.sex); System.out.println(p2.name +”,” +p2.age +”,”+ p2.sex); }}
运行结果如下:
分析上面的代码得出,Person类中的第二个构造方法调用了第一个构造方法。
注意:在构造方法中只能调用一次其他的构造方法,并且并且调用构造方法的语句必须是第一条语句,否则编译错误。
(2) 继承中构造方法:
构造方法和普通方法,都用关键字super指向超类,但是使用方法不同。
1) 普通方法:执行被重载的超类中的方法,代码如下:
Class Person{ Public void eat(){ System.out.print(“想要吃好吃的”); }}Class Woman{ Public void eat(){super.eat();System.out.print(“不行,还是减肥吧”); }}
2) 构造方法:调用超类中的构造方法,且必须放在第一行,否则出错,代码如下:
Class Person{ Person(){ }}Class Woman{ Woman(){ Super(); }}
注意:如果子类构造方法中既没有显示调用积累构造方法,而基类中又没有午餐的构造方法,则编译后出错。
这里还有一点是需要大家注意的,在包含构造方法的初始化顺序如下:
1.主类的静态成员首先初始化;
2.主类的超类的构造方法按照从最高到最低的顺序被调用;
3.主类的非静态对象(变量)初始化;
4.调用主类的构造方法;
总之,构造方法并不难理解,但是在我们应用的过程中要细心,这样才不会出错。
- java构造方法与方法的区别
- Java 中的构造方法与构造代码块的区别
- Java 中的构造方法与构造代码块的区别
- JAVA中,构造方法与实例方法的区别
- 构造器与构造方法的区别
- Java方法和构造方法的区别
- Java中构造方法、实例方法、类方法的区别
- 构造器与方法的区别
- 构造函数与方法的区别
- 构造器与方法的区别
- 构造函数与方法的区别
- 构造器与工厂方法的区别
- 构造器与方法的区别
- Java 构造器和方法的区别
- Java构造器和方法的区别
- Java构造器和方法的区别
- Java构造器和方法的区别
- Java构造器和方法的区别
- 使用gdb调试多线程死锁
- 7.20在学生类student和教师类teacher 基础上再派生出一个助教类
- lightoj 1020 (博弈)
- 八皇后问题
- 【android】查看软件布局神器Hierarchy Viewer
- java构造方法与方法的区别
- cocos2d-x-3.2alpha0 如何创建新工程
- vc6 两个问题记录
- JavaFX文档(12)掌握FXML——4使用FXML来创建自定义控件
- 考研机试真题(一)之排序
- HDU1532 Drainage Ditches(网络流模板)
- Fedora GNOME3提示出现错误无法恢复
- lightoj 1224
- notepad++ 插件