1学习目标:java重载&访问修饰符
2学习内容:
2-1.方法的重载
2-2包和访问修饰符
3具体内容:
3-1.方法重载
为什么需要方法重载?
在一个类中可以有很多的方法,并且每一个方法都有自己的功能,但是方法太多,对开发者不友好,名字太多不好记,所以使用方法重载,控制每一个方法中传入的参数,并且方法的名字都一样,Java会自动的根据传入的参数的不同,调用参数相对应的不同,调用参数相对应的方法。此时开发者不需要再记各种方法的名字了。
什么是方法重载?
//方法重载:
在一个类中,方法名相同,参数不同(个数不同,类型不同,次序不同),构成方法重载
方法重载与访问修饰符,返回值类型,方法参数名没有关系
//作用:方便使用者调用方法
public class Calc4 {
//创建不同参数的方法
public void add(int m,int n){
System.out.println(m+n);
}
public void add(double m,double n){
System.out.println(m+n);
}
public void add(String m, String n){
System.out.println(m+" "+n);
}
public void add(int a,int b,int c){
System.out.println(a+b+c);
}
public void add(int m,int n,double a,double b){
System.out.println(m+n+a+b);
}
}
public class Calc4Test {
public static void main(String[] args) {
//使用类创建一个对象
Calc4 c1 = new Calc4();
//调用不同参数的方法并赋值
c1.add(1,2);
c1.add("张三","李四");
c1.add(2.5,3.5);
c1.add(4,5,5.5,6.5);
}
}
特点
1.函数/方法名必须相同
2.参数列表不同(参数个数不同,顺序不同,参数类型不同)。
如果方法名相同,参数列表也相同,此时虚拟机就混了,不能分辨到底调用哪一个方法。
注意: 方法重载不考虑返回值,不考虑参数名,不考虑访问修饰符。
4.包和访问修饰符:
1.包
包的作用,用于分门别类,不同功能的类放在不同的包中用于区分。
(1)为什么需要包?
a:没有包的话,类多的时候不好找,所以包的作用在于管理类。包在磁盘上的体现就是文件夹。
b:不同包下的类可以重名(同一目录类不能重名)
c:可以通过包做一些限定
d:包的定义语句:package包名;
e:跨包请求的时候需要导入包:import包名,类名;导入指定类import包名*;
//属于java.lang包下边的内容,每一个类都会自动引入java.lang包
练习创建两个包
package com.basketball;
public class Sport {
public void play(){
System.out.println("一起打篮球");
}
}
package com.football;
public class Sport {
public void play(){
System.out.println("一起提足球");
}
创建一个类测试包的导入效果
package LianXiWork;
/**
* @author :yzdhm
*/
//导入篮球的包
public class SportTest {
public static void main(String[] args) {
//单独引入一个包
// Sport s1 = new Sport();
//s1.play();
//同时导入两个包
com.basketball.Sport s1 = new com.basketball.Sport();
s1.play();
com.football.Sport s2 =new com.football.Sport();
s2.play();
}
}
2.权限/访问修饰符
使用修饰符定义了类和类中的字段或方法时。就可以限定该类或类中字段方法能被哪些类或哪些方法使用。
- 类的修饰符(两种):public 默认(不写就是默认)
- 类中属性/方法的修饰符(四种):public protected 默认 private
- public公共的,主要修饰成员变量和方法
打个比方public相当于共享单车任何人都可坐,protected相当于学校的共享单车,校园里不同系,不同班级不同寝室都能骑,默认,相当于你们班和买了一辆车只有你们用,private相当于你们寝室的车只有你们用。