一、面向对象编程OOP
1、三大特性
- 封装
- 继承
- 多态
2、方法
package OOP;
public class Demo1 {
//main方法
public static void main(String[] args) {
}
//修饰符 返回值 方法名(){ }
public String sayHello(){
return "hello,world";
}
public void hello(){
return;
}
public int max(int a,int b){
return a>b ? a:b;
}
}
return 的返回值要和之前的返回值类型相同
void表示返回值为空
break表示跳出循环 return表示退出循环
方法名要驼峰原则 见名知意
下面叫做异常抛出
public void readFile(String file) throws IOException{
}
3、方法的调用
静态方法static 和类一起加载
非静态方法
要new实例化这个对象
4、形参和实参
package OOP;
public class Demo3 {
public static void main(String[] args) {
//实际参数和形式参数的类型要对应
int add =Demo3.add(1,2);
System.out.println(add);
}
public static int add(int a,int b){
return a+b;
}
}
5、值传递
package OOP;
//值传递
public class Demo4 {
public static void main(String[] args) {
int a=1;
System.out.println(a);
Demo4.change(a);
System.out.println(a);
}
public static void change(int a){
a=10;
}
}
为什么这里两个都是1呢?
因为值传递void没有返回值
6、引用传递
package OOP;
public class Demo5 {
public static void main(String[] args) {
Person person=new Person();
System.out.println(person.name);
Demo5.change(person);
System.out.println(person.name);
}
public static void change(Person person){
person.name="刘家成";//person是一个对象指向的是这个类所以可以改变
}
}
//定义了Person类,有一个属性:name
class Person{
String name;
}
与上面的值传递对比记忆