Java面向对象笔记一(方法的使用&重载)

方法概念

为解决某些问题的行为

方法的好处

如果需要使用,随时调用;方法定义一次就够了;提高开发效率;

方法定义

访问修饰符 返回值类型 方法名(参数类型1 参数名,...){
//方法体
return 返回值;
}
访问修饰符:public protected private default static final
返回值类型:基本数据类型 引用数据类型
参数类型:基本数据类型 引用数据类型
return:结束该方法
返回值:返回给调用者使用,注:类型一定与返回值类型一致。常量、赋值过的变量、有计算结果的表达式。
访问修饰符 void 方法名(){
//方法体
}
package com.m.demo;

public class Person {
     public void showInfo() {
    	 System.out.println("hello");
     }
}

class Demo1 {//测试类
   public static void main(String[] args) {
	   Person p=new Person();
	   p.showInfo();
   }
}
package com.m.demo;
//无参无返回值
public class PrintStart {
	public void showStart() {
		for(int i=0;i<3;i++) {
			for(int j=0;j<4;j++) {
				System.out.print("*");
			}
			System.out.println();
		}
	}
}

class demo2{
	public static void main(String[] args) {
		PrintStart ps=new PrintStart();
		ps.showStart();
	}
	
}

package com.m.demo;
//有参无返回值
public class Counter {
	public void compter(int a,int b) {
		System.out.printf("%d+%d=%d",a,b,a+b);
	}
}
class demo3{
	public static void main(String[] args) {
		Counter c=new Counter();
		c.compter(1, 2);
	}
}
package com.m.demo;
//无参有返回值
public class Ten {
	public int tenT() {
		int t=1;
		for(int i=1;i<=10;i++) {
			t*=i;
		}
		return t;
	}
}

class demo4{
	public static void main(String[] args) {
		System.out.println("10的阶乘:"+new Ten().tenT());
	}
}

调用方法

  1. 创建对象
  2. 对象名.方法名()

调用注意

  1. 是否有返回值
  2. 形参实参保持一致
  3. 方法返回值的特点(个数、类型)接收要保持一致

方法重载

实现功能的时候,遇到功能一样,但是可以使用多种方法来实现,如果方法名取不一样,使用效率不高

  1. 方法名一样
  2. 方法形参列表不一样:个数,类型,顺序
  3. return和访问修饰符无影响
  4. 方法重载需写在一个类中
package com.m.demo;

public class Counter {
	public void computer(int a,int b) {
		System.out.printf("%d+%d=%d",a,b,a+b);
	}
	public int computer1(int a,int b) {//名字不一样
		return a+b;
	}
	public void computer(int a,int b,int c) {
		System.out.printf("%d+%d+%d=%d",a,b,c,a+b+c);
	}
	public void computer(double a,double b) {
		System.out.printf("%.2f+%.2f=%d",a,b,a+b);
	}
	
}
class demo3{
	public static void main(String[] args) {
		Counter c=new Counter();
		System.out.println(c.computer1(1, 2));
	}
}
//小例子
package com.m.demo;

import java.util.Scanner;

public class User {
	
	String username="abc";
	String password="123";
//	方法1
	public boolean login(String usn,String psw) {
		boolean f=false;
		if(username.equals(usn)&&password.equals(psw)) {
			f=true;
		}
		return f;
	}
//	方法2
	public boolean login(String usn,String psw,boolean flag) {
		
		if(username.equals(usn)&&password.equals(psw)) {
			flag=true;
		}
		return flag;
	}
}

class demo5{
	public static void main(String[] args) {
		User u=new User();
		System.out.println("请输入用户名密码:");
		Scanner s=new Scanner(System.in);
		if(u.login(s.next(), s.next())) {
			System.out.println("成功");
		}else {
			System.out.println("失败");
		}
	}
}

单元测试

用来简化,更方便来进行代码测试工作
jar包用来封装java的类
步骤:

  1. 导入2个第三方的jar包。(java本身不提供单元测试)
  2. hamcrest-core-1.3.jar;junit-4.12.jar;
  3. 新建文件夹lib->拷贝到目录下
  4. files->project Structure->Model->dependens->+选择第一个 选择jar包->应用
    在这里插入图片描述

全局变量、局部变量

全局变量:成员变量,定义在类中,方法外
局部变量:定义在方法中、{}、形参
区别
1 初始值不同:
成员变量会自动被赋值:默认值
局部变量不会默认初始值,需手动赋值
2. 定义的位置不同
3. 在内存中的位置不同:
成员变量:堆内存中
局部变量:栈内存中
4 生命周期不同:

 成员变量:当new对象的时候,jvm会在堆空间中,创建出来成员变量并附初始值,堆空间销毁时,成员变量也销毁
 局部变量:当方法被压入栈中的时候,就会产生局部变量,如果方法弹栈,局部变量随之销毁

5.使用范围不同:
成员变量:类中的任何位置
局部变量:方法中使用,不能跨方法

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值