7.方法

本文深入探讨了Java中的方法封装、方法种类、方法重载、构造方法重载、静态成员及final修饰符的使用,同时介绍了枚举的概念及其在代码中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

方法

1.定义

把代码逻辑细节用方法封装起来,通过对象能够重复调用方法,代码复用,提高工作效率。

//行为:叫做方法。
	public void study() {
		System.out.println("学习");
	}

2. 方法种类

  1. 无返回值的无参方法

    //void代表无返回值
    //()中写写形参,空代表没有参数
    public void game() {
    		System.out.println("游戏");
    	}
    
  2. 无返回值的有参方法

    //方法中有参赛,为形参
    public void study(String name,int time) {
    		System.out.println(name+"一天学习" + time +"小时");
    	}
    //调用方法时传递的为实参
    study("小明",10);
    
    结果:
    小明一天学习10小时;
    
  3. 有返回值的无参方法

    //int代表返回值为int类型,
    public int add() {
    		teturn 1;
    	}
    
  4. 有返回值的有参方法

    public int add(int a,int b) {
    		return a+b;
    	}
    System.out.println(add(5,6));
    
    结果:
    11
    

方法重载

在同一个类中,多个方法名相同,但参数的顺序、类型、个数不同,与返回值无关,叫做方法重载。

  1. 构造方法重载

    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可以用来修饰:

    1. 静态变量(类变量):可以直接通过类名.变量名调用

      static double money=100;//类变量,通过类调用
      
    2. 静态方法(类方法):可以直接通过类名.方法名调用

      public static void show2() {
      		//静态方法中不能够直接调用非静态变量好方法,如果要调用要先创建对象再去调用
      		System.out.println("用static修饰的方法叫做类方法,通过类调用");
      	}
      
    3. 静态代码块:当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);
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值