方法
1.定义
把代码逻辑细节用方法封装起来,通过对象能够重复调用方法,代码复用,提高工作效率。
//行为:叫做方法。
public void study() {
System.out.println("学习");
}
2. 方法种类
-
无返回值的无参方法
//void代表无返回值 //()中写写形参,空代表没有参数 public void game() { System.out.println("游戏"); }
-
无返回值的有参方法
//方法中有参赛,为形参 public void study(String name,int time) { System.out.println(name+"一天学习" + time +"小时"); } //调用方法时传递的为实参 study("小明",10); 结果: 小明一天学习10小时;
-
有返回值的无参方法
//int代表返回值为int类型, public int add() { teturn 1; }
-
有返回值的有参方法
public int add(int a,int b) { return a+b; } System.out.println(add(5,6)); 结果: 11
方法重载
在同一个类中,多个方法名相同,但参数的顺序、类型、个数不同,与返回值无关,叫做方法重载。
-
构造方法重载
public class Student { private String name; private int age; private char sex; private double money; //构造方法重载 public Student() { super(); } public Student(String name) { super(); this.name = name; } public Student(String name, int age) { super(); this.name = name; this.age = age; } public Student(String name, int age, char sex) { super(); this.name = name; this.age = age; this.sex = sex; } public Student(String name, int age, char sex, double money) { super(); this.name = name; this.age = age; this.sex = sex; this.money = money; } }
static
静态的,static可以用来修饰:
-
静态变量(类变量):可以直接通过类名.变量名调用
static double money=100;//类变量,通过类调用
-
静态方法(类方法):可以直接通过类名.方法名调用
public static void show2() { //静态方法中不能够直接调用非静态变量好方法,如果要调用要先创建对象再去调用 System.out.println("用static修饰的方法叫做类方法,通过类调用"); }
-
静态代码块:当java虚拟机(jvm)加载类的时候,就会执行该代码块
//静态代码块加载类的时候就执行,先执行静态代码块再加载Student()构造方法 static { studentNo = 1001; }
- 静态变量是通过类名直接调用(也可以通过对象名调用)
- 静态方法中不能够直接调用非静态变量好方法,如果要调用要先创建对象再去调用
- 成员方法能直接调用静态变量和静态方法
-
final
-
final修饰的变量叫常亮,值是不可以被修改的,并且需要赋初始值。
-
final修饰的方法不能重写
-
final修饰的类不能被继承
-
局部常量可以不赋初始值
String name;//变量 值可以改变 final int DAY = 7;// public void show() { final String company; company = "zx";//局部常量可以不赋初始值 System.out.println("公司名称:" + company); //调用静态常量 System.out.println("今天是:" + ConstantUtil.WEEK2); } public static void main(String[] args) { Student stu = new Student(); stu.show(); }
/** * * 在实际项目中,一般会把项目中用到的常量全部放在一个工具类中 * */ public class ConstantUtil { //静态常量 public static final String WEEK1="星期一"; public static final String WEEK2="星期二"; public static final String WEEK3="星期三"; public static final String WEEK4="星期四"; public static final String WEEK5="星期五"; public static final String WEEK6="星期六"; public static final String WEEK7="星期日"; }
枚举
枚举是jdk1.5之后的新特性,是一种数据类型,可以将常量组织起来,使代码更加易读、安全、统一管理。
(1)类中的枚举
public class Student {
enum Week{
星期一,
星期二,
星期三,
星期四,
星期五,
星期六,
星期日
}
public void show() {
//week的数据类型是Week枚举类型,就约定了week变量里面的值只能是week枚举里面这七个固定的常量
//数据类型就比常量更为严格
Week week = Week.星期一;
System.out.println("今天是" + week);
}
public static void main(String[] args) {
new Student().show();
}
}
(2)枚举类
public enum Color {
RED,YELLOW,GREEN
}
public class Test {
public static void main(String[] args) {
Color color = Color.RED;
switch (color) {
case RED:
System.out.println("红灯停");
break;
case YELLOW:
System.out.println("黄灯等一等");
break;
case GREEN:
System.out.println("绿灯行");
break;
default:
break;
}
}
}
(3)以枚举类型作为方法的参数
public class InfoTest {
//以枚举类型作为方法的参数
public static String getColor(Color color) {
String instruct ="信号灯故障";
switch (color) {
case RED:
instruct ="红灯停";
break;
case YELLOW:
instruct ="黄灯等一等";
break;
case GREEN:
instruct ="绿灯行";
break;
default:
break;
}
return instruct;
}
}
public class Test {
public static void main(String[] args) {
String info = InfoTest.getColor(Color.YELLOW);
System.out.println("信号灯信息:" + info);
}
}