第五章 方法

本文介绍Java中的方法定义、调用及重载等概念,并详细解释构造器的作用与使用方法,辅以实例说明。

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

一、方法的定义

在面向对象中的方法 其实和面向过程(C)中的函数是一种东西。

方法定义分为 声明、实现 2个部分

 1.其中声明

访问修饰符    可选修饰符     返回值类型    方法名  (参数列表){**********************}          

方法名  :  从第二个单词开始,有字符大写,第一个单词的全小写

 2.实现部分

就是{ }中的语句操作

访问修饰符就是四种public ,private,protected,默认什么都不写

可选修饰符有 

static   静态的     类中只有这一个方法,所有对象共用,而且 可以直接使用类名访问

final    最终的     就像常量一样,不能被修改,通常用在继承中,防止子类修改该方法

abstract      抽象的     这个方法中没有实现过程      也是用在继承中, 最底层的子类中必须实现这个方法

native          映射         编写一个 可以访问用其他语言编写的方法       

synchronized     同步的   用做多线程中 的方法同步,同时只能有一个线程使用这个方法

二、方法的调用

方法的调用有 方法调用栈,专门用来保存方法,最顶层的就是当前正在调用的方法,最底层就是最开始调用的方法。

当方法被调用时:

1.会先定义形参
2.将实参的值传递给形参。java中参数传递都是值传递
3.再执行 花括号中的方法具体实现部分
4.如果实现部分有调用其他方法,则  回到1步骤,使用其他方法
5.当4中的调用方法执行完时,返回方法的值(如果有返回值)
6.继续执行步骤4 下面的操作,直到所有的操作结束
7.返回方法的值(如果有返回值)

三、方法的重载

面向对象的封装:属性,方法。他们都有访问修饰符,

面向对象的其中一个特点是  多态,最基本的多态就是方法的重载。

方法重载的特点:它体现在方法的声明中,只有参数列表不同

1.参数类型不同
2.参数个数不同
3.参数的顺序不同

四、构造器

程序中不可能只有类,类只是一个规范,它是抽象的,不是实际客观的存在。当我们处理问题时,必须要有实际的列子,那就是对象了

构造器就是专门用来实例化对象的

1.没有返回值类型 
2.是一种方法,可以被重载
3.方法名与类名相同

一旦我们定义了有参数的构造器,那么系统就不会自动加上一个无参数的构造器了,所以我们一般还要重新写一个无参数的构造器,这是一个大家约定的规范。

java中一共有4种产生对象的方法

构造器  与  new  关键字配合  就可以产生对象

五、this的用法

this. 属性/方法      可以访问或调用本对象的 相应属性和方法

this()  表示 本类的其他构造器 ,没有参数的。

this(参数1,参数2)   调用本类的 构造器 有2个参数,且类型一致

六、访问器和修改器

sun公司统一标准  :

访问器:

        public   属性类型    get属性名(首字母大写)(){return  属性;}

修改器:

       public   void    set属性名(首字母大写)(){设置属性;}

逻辑布尔的属性 值   在06年之后专门用下面的

      public   boolean   is布尔属性(首字母大写)(){return  布尔属性;}   返回值有2个,true 或者false

 

电梯列子:

 

public class Elevator {
	private int currentFloor;//当前层数
	private int destinationFloor;//目标层数
	private boolean up;//电梯上升为true
	private boolean doorsopen;//电梯门开 为true
	
	public Elevator(){
		
	}
	
	public Elevator(int currentFloor,int destinationFloor){
		this.currentFloor = currentFloor;
		this.destinationFloor = destinationFloor;
		this.up = false;
		this.doorsopen = false;
	}
	
	//获取电梯当前层数
	public int getDestinationFloor(){
		return this.destinationFloor;
	}
	
	//获取电梯目的层数
	public int getCurrentFloor(){
		return this.currentFloor;
	}
	
	//开门方法
	public void openDoors(){
		System.out.println("正在开门……");
		this.doorsopen = true;
	}
	
	//关门方法
	public void closeDoors(){
		System.out.println("正在关门……");
		this.doorsopen = false;
	}
	
	//上升方法
	public void goingUp(){
		System.out.println("正在上升…… 当前层数:"+this.currentFloor);
		this.currentFloor ++;
		this.up = true;
	}
	
	//下降方法
	public void goingDown(){
		System.out.println("正在下降…… 当前层数:"+this.currentFloor);
		this.currentFloor --;
		this.up = false;
	}
	
	//运动方法,到目的层数
	public void goToFloor(int n){
		this.destinationFloor = n;
		System.out.println("目标层数:"+n);
		while(this.destinationFloor != this.currentFloor){
			if(this.currentFloor < this.destinationFloor){
				this.goingUp();
			}
			else{
				this.goingDown();
			}
		}
		System.out.println(this.currentFloor+"到了!");
	}
}

import java.util.Scanner;


public class ElevatorPrograme {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Elevator e1 = new Elevator(1,1);
		Scanner scan = new Scanner(System.in);
		do{
			int choice = 0;
			System.out.println("请输入你当前的层数:");
			choice = scan.nextInt();
			System.out.println("请等待");
			e1.goToFloor(choice);
			e1.openDoors();
			e1.closeDoors();
			System.out.println("请输入你要到达的层数:");
			choice = scan.nextInt();
			e1.goToFloor(choice);
			e1.openDoors();
			e1.closeDoors();
		}while(true);
	}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值