在Python中,将代码模块化并将其反复利用的一般称其为函数,使用def语句创建。而在Java中,通常使用类和方法代替函数的功能。
提到类和方法,就不得不提到类与对象的概念。通常来讲,类是对象的抽象总结,对象是类的实际个体。在Java中,需要先创建类,在类中定义该类对象的方法,然后创建对象并使用存储在类中的方法。类就相当于存放方法所需变量的文件夹,而方法就是类似Python中的函数,通过传入一定参数(形参、实参或全局参数)来使用定义好的功能。
在创建类时,通常需要给这个类下的对象设置一些变量,以供其中的方法使用。一个个添加变量的语法如下:
public class StudentTest {
public static void main(String[] args) {
Student stu=new Student();
stu.name="张三";
stu.age=18;
stu.height=1.98;
}
}
这是一个学生类的测试,像这样一个个添加变量非常麻烦,代码量也相当大。一般情况下没有必要这么写。
那么,怎么避免这种冗余的写法呢?这就要引出本次笔记的主题:构造方法。
public class StudentTest {
public static void main(String[] args) {
Student stu1=new Student("李四",19,1.75);
}
}
这是在类中使用构造方法后的语句,像name、age、height这类变量直接放到new后面的构造方法里,就可以显著减少代码量,编写起来也方便许多。
那么该怎么编写构造方法呢?首先要知道,在类中,如果没有定义构造方法,Java系统会默认提供一个没有参数的构造方法,而在定义后,Java系统便不再会提供这样一个没有参数的构造方法了。所以在定义构造方法时,一定要同时定义一个没有参数的构造方法。
无参构造方法定义方式如下:
public class Student {
public Student(){}
}
要注意:构造方法没有返回值,所以代码块内也没有return语句。同时构造方法名需要跟类名一致。
全参构造方法定义方式如下:
public class Student {
public Student(String name,int age,double height){
this.name=name;
this.age=age;
this.height=height;
}
}
可以看到,全参构造方法需要像普通有参方法一样,在方法名后的括号内填写需要输入的参数。要注意:括号内的参数名可以随意填写,但是不建议这样,会导致输入时不好分辨。this语句指代的是对象名,后面的参数是类里定义的全局参数名,=号后面的是上面括号内的参数名,如果改动需要一起更改。
892

被折叠的 条评论
为什么被折叠?



