1、类与对象的关系
类是一种抽象的数据类型,它是对某一类事物整体描述/定义,但是并不能代表某一个具体的事物.
对象是抽象概念的具体实例
例如:
学生是一个Student类;具体的某个学生就是一个Student类对象
2、类与引用的关系
引用指向具体的对象
Student s=new Student();
s就是引用,指向一个Student对象,保存的是该对象在堆内存的地址
3、堆、栈、方法区
方法区;存放代码 从硬盘加载类class
栈:存放方法;方法运行时位置,运行时方法压栈,运行完成释放内存弹栈 对象的引用存在这里
堆:存放类new出的对象
4、方法的定义和调用
1、方法定义:方法定义在类中
修饰符 返回类型 方法名(参数列表) 抛出异常类型{
方法体
}
修饰符:public static abstract final等都是修饰符
注:一个方法可以被多个修饰符修饰;如果一个方法或者属性有多个修饰符,这多个修饰符是没有先后顺序的
返回类型:方法执行完如果有要返回的数据,那么就要声明返回数据的类型,如果没有返回的数据,那么返回类型就必须写void.
只有构造方法(构造器)不写任何返回类型也不写void;空返回类型void和没有返回类型不同
例如:
public String sayHello(){
return "hello";
}
方法名:遵循java标识符命名规则;首字母小写,后面每个单词首字母大写
异常抛出类型:如果方法中的代码在执行过程中,可能会出现一些异常情况,那么就可以在方法上把这些异常声明并抛出,也可以同时声明抛出多个异常,使用逗号隔开即可。
例如:
public void readFile(String file)throws IOException{
}
2、方法调用
1)非静态方法(没有使用修饰符static)
采用:对象.方法名();进行调用
()里有参数则传对应类型的参数(形参)
例如:
public class Student{
public void say(int a){
System.out.println(a);
}
}
main方法中调用:(main方法程序入口)
Student s=new Student();
s.say(1);
2)静态方法(使用修饰符static修饰的方法)
采用:类名。方法名();进行调用
例如:
public class Student{
public static void say(int a){
System.out.println(a);
}
}
main方法中调用:(main方法程序入口)
Student.say(1);
注:静态方法可以采用对象进行调用,但不建议;因为静态的方法属性是随类加载的,并且只加载一次
3)方法的形参和实参
形参(形式参数):形式参数 public void test(int a){} int a为形参
实参(实际参数):调用方法实际使用传入参数