美文网首页
[Java]开发安卓,你得掌握的Java知识2

[Java]开发安卓,你得掌握的Java知识2

作者: 入梦瞌睡 | 来源:发表于2019-08-06 00:37 被阅读0次

    0.前言

    • 注意:
      本文实际是上一篇文章的后续,建议先把上一篇文章阅读完毕
      [Java]开发安卓,你得掌握的Java知识1

    • 本文与以往文章结构不太一样,统一采用先讲解,后放图的形式,以避免文章结构过于混乱
      观众请先看讲解,然后看后面跟着的>图进行理解即可

    • 由于最终目的是要开发安卓app,因此这里使用的IDE是AS(Android Studio)

    • 本文主要讲述的还是Java的内容,涉及安卓内容不多

    • ps:本文内容不涉及AS的配置教程

    1.从零到"hello world"

    第一步 新建项目

    首先我们先新建一个项目:
    File-->New-->New Project

    image.png
    • 如果本身没有项目,AS 会显示“Welcome”屏幕。点击 Start a New Android Studio project即可

    第二步

    我们这里主要是先要写一个Java程序,因此选择空的界面(Empty Activitiy)

    name的话随便就行(最好能够辨认)

    • Package Name要全部小写,
    • Language选Java

    最后点击finish

    选择Empty Activity 工程命名
    点击finish后的页面
    • ps:这里选择Android会方便一些

    第三步 新建Module

    在app上右键->New->Module(单元)

    选择最后的那个Java library(因为要写Java程序,不涉及安卓app)

    • Library name随便(这里用的是Java1

    • Java Class Name本文用的默认的MyClass

    点击finish然后等待初始化完成

    创建module
    • ps:蓝色那部分就是选中的


      选Java library
      左边出现这个文件夹之后就OK

    第四步 编写main函数

    打开MyClass

    然后在MyClass里面编写主函数

    可以自己完整的敲完,但是推荐在MyClass里输入psvm,
    然后回车,就会自动生成主函数

    (psvm其实就是主函数各单词的首字母)

    点开Java1中的MyClass 输入psvm就会有提示,此时回车 自动生成了主函数(自己敲出来也行)

    第五步 输出hello world

    在main函数里输入System.out.println("hello world");

    也可以输入sout然后回车(和上面的psvm性质一样)

    然后点击主函数同一行的最左边的绿色剪头,然后点击run,就可以在终端看到运行结果

    注意:可能第一遍运行会出bug,如果有就再运行一次,可能就消失了

    输入sout然后回车 自动生成了方法 点击左边的箭头 bug

    ps:可能第一次运行会遇到错误,再运行一次即可

    hello world

    第六步 编写杀人游戏,其之一

    杀人游戏的编写思路清参考以前的文章
    [C语言] 数组的实际应用三则

    在public class MyClass的(大括号)后面写一个新的类KillPerson

    在这个新的类中写一个main函数(用psvm更快喔)


    杀人游戏的思路顺序

    ps:上图为杀人游戏的思路顺序,可以根据这个顺序来写代码

     

    第七步 编写杀人游戏,其之二

    输入参与人数需要从终端输入--->使用Scanner类来完成

    Scanner类中有一个nextInt()方法可以接收整型数据

     //1.输入参与人数
            System.out.print("请输入参与人数:");
            Scanner sc = new Scanner(System.in);
            int joinNum = sc.nextInt();//获得参与人数
    

    第九步 编写杀人游戏,其之三

    为参与游戏的每个人进行一个编号-->即用一个数组,按顺序装入1,2,3,4省略号,用编号代表每个玩家

    上述过程需要:
    (1)定义一个数组
    (2)使用一个for循环将数字装入数组中

    接着还要从终端输入一个死亡编号,
    喊出该死亡编号的人视为死亡(被淘汰)

    //2.编号
            int[] order = new int[joinNum];
            for (int i = 0; i < joinNum; i++) {
                order[i] = i+1;
            }
    
    //3.输入死亡编号
            System.out.print("请输入死亡编号:");
            int dieNum = sc.nextInt();//获得死亡编号
    

    ps:这里的joinNum就是一个变量,在c语言中是补鞥呢这么做的

    第十步 编写杀人游戏,其之四

    正式开始编写杀人游戏的主要操作

    由于不清楚要循环几次,故使用while(true){ }

    要先定义几个变量

            int nowNum = 0;
            int orderNum = 0;//数组编号
            int remains = joinNum;//总剩余人数
    

    orderNum表示当前的数组下标,如果到达了数组的最后一个元素的位置,需要让他回到开头

    if(orderNum == joinNum){
                    //判断是否要回到开头
                    orderNum = 0;
                }
    

    nowNum表示当前喊出的数字,如果它与dieNum一致,就表示当前编号的玩家死亡

    if (nowNum == dieNum) {
                    order[orderNum] = 0;
                    remains--;
                    nowNum = 0;
                    for (int i = 0; i < joinNum; i++) {
                        System.out.print(order[i]+" ");
                    }
    

    上面的代码我们可以看到order[orderNum] = 0;
    即我们会把数组的编号赋值为0以表示他死亡了
    后期如果看到数组中的值为0,则会跳过循环,如下:

     if (order[orderNum] == 0) {
                    //人已经死了就跳过
                    orderNum++;
                    continue;
                }
    

    remains用来计算剩余人数,当剩余人数=1时,退出循环

    if(remains == 1){
                    //只剩下一个人,退出
                    break;
                }
    



    整个主要操作的代码为:

     while(true){
                if(orderNum == joinNum){
                    //判断是否要回到开头
                    orderNum = 0;
                }
                if(remains == 1){
                    //只剩下一个人,退出
                    break;
                }
                if (order[orderNum] == 0) {
                    //人已经死了就跳过
                    orderNum++;
                    continue;
                }
                nowNum++;//喊出号码
    
                if (nowNum == dieNum) {
                    order[orderNum] = 0;
                    remains--;
                    nowNum = 0;
                    for (int i = 0; i < joinNum; i++) {
                        System.out.print(order[i]+" ");
                    }
                    System.out.println();
                }
                orderNum++;
            }
    



    执行结果:

    image.png
    image.png

    总结:

    (1)主要的总结详见上一篇文章
    (2)大家会发现C语言实现这个程序和Java实现这个程序还是有很多不同的,不论是输入输出的语句,还是打断点调试的方法(有机会的话会补充如何打断点调试),但总体而言,Java写起来更方便简洁,还是让人比较欣慰的。

    相关文章

      网友评论

          本文标题:[Java]开发安卓,你得掌握的Java知识2

          本文链接:https://www.haomeiwen.com/subject/xshbdctx.html