一、形式参数和返回值
形式参数之前只讲过:变量(基本数据类型)
引用类型(String、普通类、抽象类、接口【自定义】)
形参:普通类,传递当前类的对象
抽下类或接口,传递的是以上两者的实现类
返回值道理相同,同形参
二、包
在工作后自己的项目要创建包,与其他公司系统整合(京东、中国移动、顺丰)
维护定位起来很快,package不能随便定义,公司域名的反转,一个单词小写完毕。多个单词中间用点,操作系统中是英文,表示硬盘上目录(文件夹)的路径
package math;要写在第一个有效的代码行(只能导入一个)
如果还是用了其他包的类,用import导入。import可以导入多个,你需要用到时间类,你就导入时间这个类,用到数学类多导入一个类
import java.util.Scanner;
import java.lang.Math;
public void print() {
Scanner jianpan = new Scanner(System.in);
}
带包的编译和运行:
手动:编译javac 类名,编译后的字节码文件要手动放入自建的文件目录中
自动:javac -d . 类名,java 包名/类名
三、访问权限
public protected default private
同一个类中 Y Y Y Y
同一个包中 Y Y Y
不同包子类 Y Y
任何地方 Y
四、内部类
成员内部类:
在class的里面有另一个class,相当于和成员属性、成员方法看成一个级别
class Outer {
private String name;
class Inner {
public void print() {
System.out.println();
}
}
}
class Outer {
private String name = "刘能";
static class Inner {
public void print() {
System.out.println("你好" + name);
}
public static void print2() {
System.out.println("静态的访问");
}
}
Outer.Inner in = new Outer.Inner().print();
Outer.Inner.print2();
局部内部类:
在方法中,有class定义
public void method() {
class Inner {
public void print() {
System.out.print("你好");
}
};// 83-87是定义
new Inner().print();// 调用
}
public class Outer {
final int age = 25;
public void method() {
class Inner {
public void print() {
System.out.print(age);
}
};// 83-87是定义
new Inner().print();// 调用
}
}
匿名内部类:
abstract class Pet {
public abstract void play();
}
class Outer {
public void method() {
new Pet() {
public void play() {
System.out.println("猫吃鱼,狗吃肉,欧特曼打小怪兽");
}
}.play();
}
}