【Java基础05】类和方法
1、类
public class Test {
public static void main(String[] args) {
}
}
class OtherClass{
}
如上述代码,定义了两个类,只能有一个类使用public修饰,且这个类的名字需要和文件名相同。
在之前讲到的Scanner类也是一个类,通过这个类可以调用它的next()方法。
2、方法
方法是定义在类中的,是语句的集合。
比如之前使用的输出语句:System.out.println(),System是一个类,out是类中的对象,println()是这个对象类的一个方法。
方法的定义结构:
修饰符 返回值类型 方法名(参数类型 参数名){
方法内容
return 返回值;
}
- 修饰符:访问权限。public是对所有类都可访问;protected是对同一包内的类和子类可见;private是同一类内可见;
- 返回值类型:return 之后的返回值的类型;
public class test{
public static void main(String[] args){
Student s1 = new Student(); //创建一个Student对象,不加入参数
//输出"这是什么参数都没有的构造方法",可以发现创建对象的时候自动调用了没有参数的构造方法
System.out.println(s1.name); //s1.name是获取s1这个对象里name变量的值
//输出null,因为这个对象的变量name没有值
Student s2 = new Student("小明",15); //创建新的对象,并加入参数
System.out.println(s2.name);
//这个时候可以发现输出了小明,因为创建对象的时候调用的是有参数的构造方法,构造方法有将值保存到类变量里
s2.showName(); //对象名.方法名可以调用类里的方法
int age = s2.getAge(); //因为这个方法的返回值是int,可以赋值给现在创建的这个变量里
System.out.println(age);
s2.setScore(50); //也可以通过调用方法来修改类里的变量
System.out.println(s2.score);
s2.score = 60; //当然在这里也可以不通过方法修改变量,如果变量前有加修饰词private就不可以
System.out.println(s2.score);
}
}
class Student{
//定义一个学生类,用于创建学生对象
String name; //学生姓名
int age; //学生年龄
double score; //学生成绩
public Student(){
//这是一个构造方法:方法名和类名相同,没有返回值和返回类型,连void都没有,创建对象的时候会自动运行
System.out.println("这是什么参数都没有的构造方法");
}
public Student(String name, int age){
//这也是一个构造方法,两个方法名字相同,但是参数不同
//如果创建对象的时候没有填参数就会运行上面的方法,如果填了参数就会运行这个方法,这叫方法的重载
this.name = name;
this.age = age;
//可以发现,上面的定义的变量和参数的名字相同了
//类里面的变量会和对象被创建的时候一直存在,而方法里的参数和变量在方法运行结束之后都会消失
//为了保存变量的值,就把参数的值保存到类的变量里
//使用this就是为了区分参数和类的变量,使用this.变量名的是类的变量
}
public void showName(){
System.out.println(name);
}
public int getAge(){
return age;
}
public void setScore(double score){
this.score = score;
}
}