面向对象四之函数(函数重载)与(构造函数)
①.函数的重载
所谓重载,就是在同一个类当中允许连个或者两个以上的函数的名字相同,并且参数列表不同。(C中不允许函数名相同)
例如代码:(这些函数都可以称之为成员函数)
1 class A
2 {
3 void funA()
4 {
5 System.out.println("没有参数的funA函数");
6 }
7
8 void funA(int i)
9 {
10 System.out.println("有一个参数的funA函数");
11 }
12
13 }
那调用的时候主函数怎么知道调用的是那个函数呢?看代码
1 class Test
2 {
3 public static void main(String args[])
4 {
5 A a=new A();
6 a.funA(); //调用无参数的函数
7 a.funA(10); // 调用有参数的函数
8 }
9 }
比如说定义一个“人”的类,有一个方法是" 洗"
洗(脸)
洗(衣服)
洗(手)
②.构造函数。
1.构造函数是没有返回值类型的,
2.构造函数的名字必须和类名相同
3.调用普通的函数是用
对象.函数名();
调用构造函数是用
new 构造函数();
Dog dog=new Dog(); //这里的Dog() 就是所谓的构造函数
例子①.无参重载函数的构造函数
1 class A
2 {
3 //构造函数是没有返回值类型的,
4 //构造函数的名字必须和类名相同
5 //编译器在编译类的时候,会检查是否有构造函数,
//①如果没有的话编译器会自动加一个无参数并且方法提为空的构造函数
// ②如果有的话,编译器不会生成一个无参数列表并且方法提为空的构造函数
6 A()
7 {
8
9 }
10
11 void funA()
12 {
13 System.out.println("没有参数的funA函数");
14 }
15
16 void funA(int i)
17 {
18 System.out.println("有一个参数的funA函数");
19 }
20
21 }
main函数如下:
1 class Test
2 {
3 public static void main(String args[])
4 {
5 A a=new A();
6 fubA();
7 funA(10)
8 }
9 }
例子①.有参重载函数的构造函数
1 class Person{
2 Person(){
3 }
4
5 Person(String n,int a){
6 name=n;
7 age=a;
8 }
9 String name;
10 int age;
11
12 }
main函数如下:
1 class Test{
2 public static void main(String args[])
3 {
4 Person person1 = new Person("张三",10);
5 Person person2 = new Person("李四",13);
6
7 System.out.println("person1的name是:"+person1+",age是"+person1.age);
8 }
9 }
构造函数的作用
1.使用new 可以生成构造函数的对象
2.可以自己编写构造函数为成员变量赋初始值