Java语言程序设计基础(2)【方法】

来源:互联网 发布:mac 终端 重命名文件 编辑:程序博客网 时间:2024/06/02 07:12

方法(method)

1.概念

  • 调用:系统将参数和局部变量存储在堆栈(后进先出)中,当一个方法调用另一个方法时,调用者的堆栈空间不变,一个方法结束调用的时候,相应空间也被释放。
  • 值传递:调用方法时需要提供实参,必须与形参的次序相同。不论方法如何作用,实参本身不会发生变化。
  • 重载:创建另一个方法名相同但是参数不同的方法。被重载的方法必须具有不同的参数列表。不能给予不同修饰符或返回值类型来重载方法。

2.几个简单程序:

  • 产生一个a-z之间的随机字符语句如下:
(char)('a'+Math.random()*('z'-'a'+1));
  • 随机显示字符的程序如下:

第一步:定义一个类,用来随机获取某种类型的字符,可以在后面的项目中使用它

public class RandomCharacter {    public static char getRamdomCharacter(char ch1,char ch2){        return (char)(ch1 + Math.random()*(ch2 - ch1 +1));    }    public static char getRandomLowerCaseLetter(){        return getRamdomCharacter('a','z');    }    public static char getRandomUpperCaseLetter(){        return getRamdomCharacter('A','Z');    }    public static char getRandomDigitCharacter(){        return getRamdomCharacter('0','9');    }    public static char getRandomCharacter(){        return getRamdomCharacter('\u0000','\uFFFF');    }}

第二步:一个小的测试程序,显示随机100个小写字母:

public class TestRandomCharacter {    public static void main(String[] args){        final int NUMBER_OF_CHARS = 100;        final int CHARS_PER_LINE = 10;        for(int i = 0; i < NUMBER_OF_CHARS ;i++){            char ch = RandomCharacter.getRandomLowerCaseLetter();            if((i+1) % CHARS_PER_LINE == 0)                System.out.println(ch);            else                System.out.print(ch);        }    }}
  • 计算从a到b之间的数字和
public class Sum{    public static int SumNumber(int i1,int i2){        int sum = 0;        for(int i = i1;i<=i2;i++)            sum+= i;        return sum;    }    public static void main(String[] args){        System.out.println("Sum of 20,30 is " + SumNumber(20,30) );    }}
  • 比较两个整形数之间哪个更大(Max)对于浮点数进行比较的话,可以通过重载来实现。
import java.util.Scanner;public class Max {    public static void main(String[] args){        System.out.println("Please input two numbers!");        Scanner input = new Scanner(System.in);        int a = input.nextInt();        int b = input.nextInt();        int k = Max(a,b);        System.out.println("The maximum of " + a +" and " + b + " is " + k);    }    public static int Max(int i1,int i2){        if(i1>i2)            return i1;        else            return i2;    }}
  • 调换两个数的顺序
import java.util.Scanner;public class Swap {    public static void main(String[] args){        System.out.println("Enter two numbers:");        Scanner input = new Scanner(System.in);        int a = input.nextInt();        int b = input.nextInt();        System.out.println("Before swapping is " + a +" and " + b);        Swap(a,b);    }    public static void Swap(int i1,int i2){        int temp;        temp = i1;        i1 = i2;        i2 = temp;        System.out.println("After the swap is "+ i1 + " and " + i2);    }}
  • 求最大公约数(普通的方法)
import java.util.Scanner;public class GreatestCommonDivisorMethod{    public static void main(String [] args){        System.out.println("Please enter two numbers:");        Scanner input = new Scanner(System.in);        int i1 = input.nextInt();        int i2 = input.nextInt();        int result = gcd(i1,i2);        System.out.println("The greatest common divisor for" + i1 + " and "+ i2+" is " + result);    }    public static int gcd(int n1,int n2){        int gcd=1;        int k = 2;        while(k <= n1 && k <= n2){            if(n1 % k == 0 && n2 % k == 0)                gcd = k;            k++;        }        return gcd;    }}
  • 判断质数
import java.util.Scanner;public class PrimeMethod {    public static void main(String[] args){        System.out.println("Enter a number:");        Scanner input = new Scanner(System.in);        int n = input.nextInt();        boolean flag = Prime(n);        if(flag ==false)            System.out.println( n + " is not a prime number.");        else            System.out.println( n + " is prime number.");    }    public static boolean Prime(int i){        double k = Math.sqrt(i);        int m = (int)k;        for(int j = 2; j <= m ; j++){            if(i % j == 0)                return false;        }        return true;    }}
  • 十进制和十六进制转换
import java.util.Scanner;public class Decimal2HexConversion {    public static void main(String[] args){        Scanner input = new Scanner(System.in);        System.out.println("Enter a number:");        int n = input.nextInt();        String result;        result = decimalToHex(n);        System.out.println(result);    }    public static String decimalToHex(int decimal){        String hex = "";        while(decimal!=0){            int hexValue = decimal % 16;            hex = toHexChar(hexValue) + hex;            decimal /= 16;        }        return hex;    }    public static char toHexChar(int hexValue){        if(hexValue <= 9 && hexValue >=0)            return (char)(hexValue + '0');        else            return (char)(hexValue - 10 + 'a');    }}
  • 五角数N*(3N-1)/2;
public class getPentagonalNumber {    public static void main(String[] args){        int k =1;        int count = 0;        for(int i = 1;i <= 100; i++)        {            k = getPentagonalNumberMethod(i);            System.out.println(k);            if(count<9)                count++;            else{                System.out.println("\n");            count = 0;}        }    }    public static int getPentagonalNumberMethod(int n){        return n*(3*n-1)/2;    }}
  • 判断一个数是否为回文数(例如121,12321)
import java.util.Scanner;public class IsReverse {    public static int reverseMethod(int num){        int digit = 0;//表示位数        int cal = num;        while(cal>9){            cal/=10;            digit++;        }        int rev = 0;//倒置的数        int a;//级数        for (int i = digit; i>-1 ;i--){            a = (int)Math.pow(10,i);            rev += (num%10) * a;            num /= 10;        }        return rev;    }    public static boolean isPalindrom(int number){        int reversenumber;        reversenumber = reverseMethod(number);        if(number == reversenumber)            return true;        else return false;    }    public static void main(String[] args){        int num;        System.out.println("Enter a number:");        Scanner input = new Scanner(System.in);        num = input.nextInt();        boolean result = isPalindrom(num);        if(result == true)            System.out.println(num + " is palindrom.");        else            System.out.println(num + " isn`t palindrom.");    }}
  • 输入三个边,判断其是否能组成三角形,如果能的话,求面积
import java.util.Scanner;public class MyTriangle {    public static boolean isValid(double side1,double side2,double side3){        return ((side1 + side2)>side3)&&((side1-side2)<side3);    }    public static double area(double side1,double side2,double side3){        double s,area;        s = (side1 + side2 + side3)/2;        area = Math.sqrt(s * (s-side1) * (s - side2) * (s - side3));        return area;    }    public static void main(String[] args){        System.out.println("Enter three sides:");        Scanner input = new Scanner(System.in);        double s1,s2,s3;        s1 = input.nextDouble();        s2 = input.nextDouble();        s3 = input.nextDouble();        double trianglearea;        boolean result = isValid(s1,s2,s3);        if(result){            trianglearea = area(s1,s2,s3);            System.out.println("Area of " + s1 + " " + s2 + " " +s3 + " is " + trianglearea);        }        else            System.out.println("It is not a triangle.");    }}
0 0
原创粉丝点击