//值传递publicclassDemo01{publicstaticvoidmain(String[] args){int a =10;System.out.println(a);change(a);System.out.println(a);//结果输出仍为1,可以看出Java是值传递}publicstaticvoidchange(int a){
a =1;}}
//引用传递:对象,本质还是值传递publicclassDemo02{publicstaticvoidmain(String[] args){Person guy =newPerson();System.out.println(guy.name);change(guy);System.out.println(guy.name);}publicstaticvoidchange(Person person){
person.name ="Guy";}}//定义了一个Person类,有一个属性:nameclassPerson{String name;}
publicclassApplication{publicstaticvoidmain(String[] args){Student student =newStudent();
student.say();System.out.println(student.getMoney());
student.test("xiongmao");}}//在Java中,所有的类都直接或间接继承Object//Person 父类publicclassPerson{publicPerson(){System.out.println("Person无参执行了");}protectedString name ="熊猫";privateint money =10_0000_0000;publicvoidsay(){System.out.println("说了一句话");}publicintgetMoney(){return money;}publicvoidsetMoney(int money){this.money = money;}}//Student 派生类/子类publicclassStudentextendsPerson{//隐藏代码:调用了父类的无参构造//super();publicStudent(){System.out.println("Student无参执行了");}privateString name ="Panda";publicvoidtest(String name){System.out.println(name);System.out.println(this.name);System.out.println(super.name);}}//Teacher 派生类/子类publicclassTeacherextendsPerson{}
publicclassApplication{publicstaticvoidmain(String[] args){A a =newA();
a.test();B b =newA();
b.test();}}/*
因为静态方法是类的方法,而非静态是对象的方法
有static时,b调用了B类的方法,应为b是B类定义的
没有static是,b调用的是对象的方法,而b是A类new的
即b是Anew出来的对象,因此调用类A的方法
*/publicclassAextendsB{publicvoidtest(){System.out.println("A=>test()");}}publicclassB{publicvoidtest(){System.out.println("B=>test()");}}
publicclassApplication{publicstaticvoidmain(String[] args){//一个对象的实际类型是确定的//new Student();//new Person();//可以指向的引用类型就不确定类:父类的引用指向子类//Student 能调用的方法都是自己的或者继承父类的!Student student =newStudent();//Person 父类,可以指向子类,但是不能调用子类独有的方法Person person =newStudent();
student.say();
person.say();((Student)person).study();/*
1.父类引用指向子类的对象
2.把子类转换为父类,向上转型
3.把父类转换为子类,向下转型 强制转换!
4.封装 继承 多态
*/}}publicclassPerson{publicvoidsay(){System.out.println("I am a person");}}publicclassStudentextendsPerson{publicvoidsay(){System.out.println("I am a student");}publicvoidstudy(){System.out.println("I am studying...");}}
publicclassTest{publicstaticvoidmain(String[] args){int a =1;int b =0;try{//try监控区域System.out.println(a/b);}catch(ArithmeticException e){//catch捕获异常System.out.println("程序出现异常,变量b不能为0");}finally{//处理善后工作System.out.println("finally");}//finally 可以不要fanally IO流 资源 关闭}}
publicclassTest2{publicstaticvoidmain(String[] args){int a =1;int b =0;//假设要捕获多个异常:从小到大//快捷键:command+option+Ttry{System.out.println(a/b);}catch(Exception e){
e.printStackTrace();//打印错误栈信息}finally{}}}
//值传递public class Demo01 { public static void main(String[] args) { int a = 10; System.out.println(a); change(a); System.out.println(a); //结果输出仍为1,可以看出Java是值传递 } public static void change(int a){ a =