一:java方法中参数的限制
package Pricitise;
public class lianxi {
public static void main(String[] args){
// int x = 7;
// doubleNumber(x);
// System.out.println("x="+x);
// System.out.println();
//
int number = 800;
doubleNumber(number);
System.out.println("number="+number);
System.out.println("y="+y);
}
public static void doubleNumber(int number){
System.out.println("初始值为"+number);;
number = number*2;
System.out.println("最终值为"+number);
int y = number;
}
}
方法中对参数的局部操作并不会改变方法以外实际变量的值。参数的一个重要特性就是:它只是原始变量值的一份拷贝。好的一面是:我们知道变量不会被调用的方法所修改,因为方法的参数只是原始值的拷贝。不好的一面是,我们只能通过参数将一些值传送到方法中去,但是不能通过参数将方法中的某些值提取出来。
二:重载
多个方法共用一个名字,但是每个同名的不同方法必须有不同的方法签名。即方法名以及参数的个数和类型。
三:编写具有返回值的方法
public static void main(String[] args){
int answer = sum(100);
System.out.println(answer);
}
public static int sum(int n){
return (n+1)*n/2;
}
return语句应该作为方法的最后一条语句。
四:String对象
String对象值不可变。
substring的第二个参数要落在字所提取的字串之外。
五:Scanner对象
Scanner console = new Scanner(System.in);
int n = console.nextInt();
六:实际案列
package Pricitise;
import java.util.Scanner;
import org.omg.Messaging.SyncScopeHelper;
public class gravity {
public static final double ACCELERATION = -9.81;//类常量
public static void main(String[] args){
Scanner console = new Scanner(System.in);
System.out.println("velocity");
double velocity = console.nextDouble();
System.out.println("angle(degree)");
double angle = Math.toRadians(console.nextDouble());
System.out.println("number of steps to display");
int steps = console.nextInt();
System.out.println();
double xVelocity = velocity*Math.cos(angle);
double yVelocity = velocity*Math.sin(angle);
double totaltime = -2.0*yVelocity/ACCELERATION;
double timeIncrement = totaltime/steps;
double xIncrement = xVelocity*timeIncrement;
double x=0.0;
double y=0.0;
double t=0.0;
System.out.println("stept\tx\ty\ttime");
System.out.println("0\t0.0\t0.0\t0.0");
for(int i = 1;i<= steps;i++){
t += timeIncrement;
x += xIncrement;
y = yVelocity*t+0.5*ACCELERATION*t*t;
System.out.println(i+"\t"+round2(x)+"\t"+round2(y)+"\t"+round2(t));
}
}
public static double round2(double n){
return Math.round(n*100)/100.0;
}
}