Java学习第7天

- Java中创建包,一半用公司域名倒过来写的方法进行命名。

  • 例如:package org.mobiletrain; (千锋的域名) --- 相当于用文件夹管理源代码

- Java方法的重载

  • 定义:在一个类中可以出现同名方法,只要它们的参数列表不同就能加以区分。
  • 参数列表不同是指:参数的类型不相同或者参数的个数不相同或者二者皆不同
  • 方法重载的具体表现:
  • 方法名相同
  • 方法的参数类型,个数顺序至少有一项不同
  • 方法的返回类型可以不相同
  • 方法的修饰符可以不相同
private static final double AISLE_UNIT_PRICE = 38.5;
    private static final double F_UNIT_PRICE = 15.5;
    //LAP - 最小惊讶原则
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        System.out.print("请输入游泳池半径:");      
        double radius = input.nextDouble(); 
        if (radius > 0) {
            System.out.printf("跑道的总造价为:¥%.2f元\n",total(radius));
        }
        else {
            System.out.println("游泳池的半径应该是一个正整数");
        }
        input.close();
    }
    
    public static double area( double radius) {
        return Math.PI * radius *radius;
    }
    public static double perimeter (double radius) {
        return 2 * Math.PI * radius;
    }
    public static double total(double radius) {
        double asislePrice = (area(radius + 3) - area(radius))* AISLE_UNIT_PRICE;
        double fencePrice = perimeter(radius) * F_UNIT_PRICE;
        double totalmoney = asislePrice + fencePrice;   
        return totalmoney;
        
    }

- 方法使用的实例

//计算组合数:C(m,n) = m! / n! * (m - n)!
public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        System.out.print("请输入m:");
        int m = input.nextInt();
        System.out.print("请输入n:");
        int n = input.nextInt();
        if (m >= n) {
            System.out.printf("组合数C(%d,%d) = %.0f",m,n,f(m) / f(n) / f(m - n));
        }
        else {
            System.err.println("输入错误!!!");
        }
        input.close();
    }
    public static double f(int n) {
        double fn = 1;
        for(int i = 2;i <= n;i++){
             fn *= i;
        }       
        return fn;
    }

- 数组

  • 定义:用一个变量保存多个同种类型的值
  • 数组的下标是从0开始
public static void main(String[] args) {
        int [] f = {0,0,0,0,0,0};//int[] f = new int[6];    表示数组里面有6个存储空间   
        for(int i = 1;i <= 60000;i++){
            int face = (int) (Math.random() * 6 + 1);
            f[face - 1] += 1;
        }
        for(int i = 1;i <= 6; i++){
            System.out.println(i + "点出现了" + f[i - 1] + "次");
        }
    }

- 斐波拉契数列

  • for-each循环(Java 5+):for(long x: f)
  • 这是只读循环,过程中不能修改其他值(读取的时候使用)
public static void main(String[] args) {
        long[] f = new long[50];
        f[0] = f[1] = 1;
        for (int i = 2; i < f.length; i++){//f.length表示数组的长度
            f[i] = f[i - 1] + f[i - 2];
        }
        for (int i = 0;i < f.length;i++){
            System.out.println(f[i]);   
        }
    }

- 数组的练习

public static void main(String[] args) {
        String[] names = {"关羽","张飞","黄忠","赵云","马超"};
        double[] scores = new double[names.length];
        Scanner input = new Scanner(System.in);
        for(int i = 0;i < scores.length;i++){
            System.out.print("请输入" + names[i] + "的成绩:");
            scores[i] = input.nextDouble();
        }
        input.close();
        double sum = 0;
        for (int i = 0; i < scores.length;i++){
            sum += scores[i];
        }       
        double max = scores[0];
        double min = scores[0];
        for(int i = 1; i < scores.length;i++){          
            if(scores[i] > max){
                max = scores[i];
            }
            else if (scores[i] < min) {
                min = scores[i];
            }                       
        }   
        System.out.println("平均分:" + sum / scores.length);
        System.out.println("最高分为:" + max);
        System.out.println("最低分为:" + min);
    }

- Josephu环(约瑟夫环)

//练习:有30个人(15个基督教徒,15个非教徒)坐船,船坏了,要把15个人扔到海里,其他人才能得救
//围成一个圈,从某个人开始从1开始报数,报到9的人扔到海里,下一个继续从1开始报数
//直到把15个人扔到海里为止,结果15个基督教徒都幸免于难
//问这些人是怎么站的,哪些位置是基督教徒,哪些是非教徒 ---Josephu环(约瑟夫环)
public class Test06 {

    public static void main(String[] args) {
        boolean[] persons = new boolean[30];//默认值是false
        for(int i = 0; i < persons.length; i++){
                persons[i] = true;
            }
        int counter = 0;//弄死多少个人
        int index = 0;//操作数组的下标
        int number = 0;//报数的值
        while (counter < 15) {
            if (persons[index]) {
                number += 1;
                if (number == 9) {
                    persons[index] = false;
                    counter += 1;
                    number = 0;
                }
            }
            index += 1;
            index %= persons.length;//防止越界
        }
        for (boolean isChrist: persons){
            System.out.print(isChrist ? "基" : "非");
        }
    }
}

- 冒泡排序

public static void main(String[] args) {
        int[] x = {23, 67, 12, 99, 58, 77, 88, 4, 45, 81};
        bubblesort(x);
        for (int a: x) {
            System.out.print(a + " ");
        }
    }

    private static void bubblesort(int[] array) {
        boolean swapped = true;
        for(int i = 1; swapped && i < array.length; i++){
            swapped = false;
            for(int j = 0; j < array.length - i; j++){              
                if (array[j] > array[j + 1]) {
                    //交换两个元素
                    int temp = array[j];
                    array[j] = array[j + 1];
                    array[j + 1] = temp;
                    swapped = true;
                }
            }
        }
    }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,324评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,303评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,192评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,555评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,569评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,566评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,927评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,583评论 0 257
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,827评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,590评论 2 320
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,669评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,365评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,941评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,928评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,159评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,880评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,399评论 2 342

推荐阅读更多精彩内容