发表于: 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方法开始,运行到swap(a,b),swap(a,b)方法在上面交换a,b,输出那句话之后,紧接着运行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));
}
}
对于fn(10)而言,如果fn(0)和fn(1)是已知的,则应该用fn(n)= 2*fn(n-1)+fn(n-2)的形式递归,因为小的一端已知;如果fn(20)和fn(21)是已知的,则应该采用fn(n)=fn(n+2)-2*fn(n+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
评论