发表于: 2018-03-08 23:42:36

2 634


一。今天做了面向对象的成员变量和局部变量;传参;引用;递归。


如果方法是public void eat之类的,后面调用方法可以用this引用调用方法的对象,然后再调用方法,比如:this.drink();

如果方法用static修饰,也就是静态方法,那么必须先创建一个对象,比如Pepole.p = new Pepole;

package com.tutorialspoint;

public class
PrimitiveTransferTest {
   
public static void swap(int a,int b){
     
int tmp = a;
     
a = b;
     
b = tmp;
     
System.out.println("swap方法里,a的值是" +a +";b的值是" + b);
   
}

   
public static void main(String[] args) {
       
int a = 6;
        int
b = 9;
       
PrimitiveTransferTest.swap(a,b);
       
System.out.println("交换结束后,变量a的值是"+a+";变量b的值是" + b);
   
}
}

这么一段程序,从main方法开始,运行到swapa,b),swap(a,b)方法在上面交换ab,输出那句话之后,紧接着运行System.out.println(交换结束后)

 

递归的重要原则

package com.tutorialspoint;

public class
Recursive {
   
public static int f(int n) {
//        if (n == 0) {
//            return 1;
//        } else if (n == 1) {
//            return 4;
//        } else {
//            return 2 * f(n - 1) + f(n - 2);
//        }
       
if (n == 20) {
           
return 1;
       
} else if (n == 21) {
           
return 4;
       
} else {
           
return 2 *f(n - 1) + f(n - 2);
       
}
    }
public static void main(String[] args){
    System.
out.println(f(10));
}
}

对于fn10)而言,如果fn0)和fn1)是已知的,则应该用fnn= 2*fnn-1+fnn-2)的形式递归,因为小的一端已知;如果fn20)和fn21)是已知的,则应该采用fnn=fnn+2-2*fnn+1)的形势递归,因为大的一端已知。

 

package com.tutorialspoint;

public class
OverloadVarargs {
   
public void test(String msg){
        System.
out.println("只有一个字符串参数的test方法" );
   
}
   
public void test(String... books)
    {
        System.
out.println("****形参个数可变的test方法****" + books);
   
}
   
public static void main(String[] args){
        OverloadVarargs olv =
new OverloadVarargs();
       
olv.test("韩要贺");
       
olv.test("aa","bb");
      
olv.test();
//        olv.test(new String[] {"aa"});
   
}
}

这段代码别的都理解,唯一不理解的是olv.test();为什么会调用test(String... books)方法,

而不是第一个方法。

后来理解了:因为第二个test里面说的是0到无数个参数值都可以调用,olv.test();里面是零个。


如果取消main方法,把main方法下面的东西剪切了,然后alt+enter,选择test方法,然后把剪切的内容放进去,测试,报错:

java.lang.ClassNotFoundException: org.hamcrest.SelfDescribing

原因居然是junit版本过高,真是。。。

junit换成了由4.12换成了4.10就可以了

参考链接:http://blog.csdn.net/castle07/article/details/8553704

 

成员变量指的就是类里面的变量,局部变量指的就是方法里的变量,变量就是属性。

比如下面的代码:

package com.tutorialspoint;

public class Person {
//定义一个实例变量
   public int id;
   public String name;
   public String say;
   //类变量也叫静态变量
   public static int eyeNum;
}

二。根据老大说的,做了脑图:


明天的计划:做完成员变量和局部变量,然后尝试着理解一下任务一的代码

遇到的问题:还好,都解决了

今天的收获:对于方法的调用理解了

java任务二开始时间:2018.01.25

预计demo时间:2018.02.12

可能有延期风险,原因是:json看不懂,控制器的逻辑看不懂,所以又回看了java语法

禅道链接地址:http://task.ptteng.com/zentao/project-task-501.html



返回列表 返回列表
评论

    分享到