S1java基础学习笔记

第一章  Java基础

程序目标:减轻现实生活中一类人的工作量,提高工作效率。

学员最终可以书写系统:

超市管理系统,POS机系统等

入库单

销售单

01.课程重点

   五大重点:    

01.分支(选择)结构

    02.循环结构

03.数组

04.二重循环

05.带参方法

02.什么是计算机程序?

解析:就是为了完成某一项工作而执行的一系列有序指令的集合。

03.Java相关的技术有哪些?

JavaSE(桌面应用开发)  JavaEE(Web开发)

老师,你教教我如何判定一个程序是桌面程序还是web程序?

解析:浏览器:

IE

     搜狗浏览器(内核IE) 傲游  世界之窗  360 QQ  猎豹

FireFox

Google

Opera

IE不等于浏览器,只是浏览器的一种

判定规则:如果一个程序(软件)不需要借助浏览器就可以执行的,那么就是桌面应用程序

反之,是web应用程序。

04.开发Java程序的步骤有哪些?

编写,编译,运行

05.Java程序的基本框架是什么?

解析:外层框架和内层框架,详细见后续讲解。

06.Java的注释类型有哪些?

单行://

多行:/**/

课程重点:

01.平台和语言不是一码事。一个平台下可以运行多种语言编写的代码。

班级管理系统

宿舍管理系统

超市管理系统

国家电力管理系统

水费管理系统

OA管理系统

07.开发自己的第一个java程序

   01.配置环境变量

    001.对我的电脑点击右键→属性→高级系统设置→环境变量→系统变量,在系统变量中

查找有没有名称为path的变量名,如果有,直接点击“编辑”按钮,然后按“Home”键将

光标定位到第一个位置

   002.打开“我的电脑”→打开C盘→找到“Program Files文件夹”→Java→jdk1.7.0_17

→bin,复制路径

   003.将复制的路径粘贴到光标闪动的位置,然后紧跟一个分号(;)

   004.一路确定,直到所有窗口消失。

   005.打开“开始”→“运行”→输入cmd→输入javac回车,如果出现一连串中文,证明

环境变量配置成功。

  02.编写代码

    001.在D盘的根目录创建一个名称为Hello的后缀名为java的文件。

    002.编写代码

  03.编译

    通过javac命令将后缀名为.java的文件编译成后缀名为.class的文件(字节码文件)

  04.运行

   通过java命令运行后缀名为.class的文件,运行的时候,后缀名不需要

     使用记事本编写第一个Java应用步骤

     1.编写源程序

     2.用javac命令将后缀名为.java文件编译成后缀名为.class的文件

     3.使用java命令执行硬盘上后缀名为.class,但是点和class都不要

     说有同学问,为什么在把.class文件用java命令执行的时候,不需要后缀?

     专业人士解析:

      当我们把.class文件交给JVM(Java虚拟机)的时候,它可以自动识别出后缀。

     Java执行流程

     Happy.java---第一道编译工作交给Java编译器---->Happy.class(字节码文件)

     -------第二道编译交给JVM----->二进制(CPU可以识别)

08.程序编码规范

解析:作为一个专业的程序员,编码规范如下:

    01.文件名,所有代码的名字都必须是英文的,而且所有出现的标点符号都是在

英文半角下。

02.代码要有缩进。

09.MyEclipse和Eclipse区别?

解析:MyEclipse(收费的)

      Eclipse(免费的)

MyEclipse功能比较强大

10.Java程序的执行机制

  解析:01.编译过程

       就是将后缀名为.java的文件通过java编译器编译成后缀名为.class的文件,编译命令

   javac

   02.执行(运行)过程

   就是通过java虚拟机(jvm)执行硬盘上后缀名为.class的文件,执行的命令是java

wps97DC.tmp

05.public class HelloWorld{

  public static void main(String[] args){

    System.out.println("我的第一个Java程序");  

  }

}

我们书写代码是在内层框架中。

06.main方法是java程序的入口,所有程序都是从main方法的第一行代码开始执行的。

07.println()换行打印输出内容,print()不换行

11.转义字符

\n:换行

\t:一系列空格

考试啊亲:第二章学完后

09.java中的注释

单行注释//

//我是高贵的注释:我有特权,编译器不会理会我

    //几十万行代码: 3个月后  方便团队成员阅读,方便自己阅读

多行注释:/**/

10.在java中,包名中每一个点都对应硬盘上的一层文件夹

11.在真正的开发中,咱们书写的代码所做的单元测试,都是由程序员来完成的。

第二道测试是由专业的测试人员完成的。

  Bug   

作业环节:

01.日记一篇

02.前两章单词

03.课后第3和第四题

回到顶部

第二章  变量  数据类型  运算符

1.变量

  重点:01.变量就是一块空间(用旅馆的例子做类比)

        02.变量三要素:数据类型 变量名 变量值

03.由于电脑记录位置的时候不是很好找(0x0156892321)变量名(num)。

二层 左手边 第三间(203)

2.数据类型

int

char

String

double 

char类型只能存储单个字符,如果你想存储一个空字符,要打一个空格。

3.命名规范,如不规范,买糖吃

  1.包名所有字母均小写。

  2.类名首字母大写

  3.变量首字母小写,后续有含义的单词首字母大写。例如stuName  stuAge

  4.首字母只能是字母,下划线和$符号中的一个,后续的内容可以是数字。   

    注意点:变量名不能和关键字重复

4.The local variable title may not have been initialized

   局部变量"title"没有被初始化(赋值)

定义变量的两种方式

001.先声明,再赋值

    int num;

num=5;

002.声明的同时并赋值

int num=5;

5.表达式概念:

   用运算符将操作数连接起来的式子就称为表达式a+b

6.赋值运算符(=)

  算术运算符:+ - * / %

  自增运算符

  int num=5;

  num++;//等价于 num=num+1;

  //++在前和在后的区别

  System.out.println(num);

7.类型转换

  1.自动类型转换

     规则1:

在一个表达式中,如果有一个操作数是double类型,那么整个表达式会被自动提升会double类型

     规则2:类型相容,目标类型>源类型     

  2.强制类型转换

   规则:类型相容,目标类型<源类型

8.Scanner用法

  如何接收用户从键盘上录入的内容?

  路人甲说:接收int怎么搞?

  专业人士解析:input.nextInt()

  路人乙收:如何接收double类型?

  专业人士解析:input.nextDouble();

  星爷问:如何接收字符串?

  专业人士解析:input.next()

  使用Scanner分三步:

  01.先导入包import java.util.Scanner; (进入到商场)

  02.创建一个扫描仪对象  Scanner input=new Scanner(System.in); 

  02.启动扫描按钮       String name=input.next();

wps97ED.tmp

wps97EE.tmp

9.个十百千问题

作业环节:

  01.日记

  02.第二章总结

  03.第二章课后除了类型转换题目

  04.开通自己的Blogs

回到顶部

第三章 if选择结构

Int num=70;

If(num>90){

  //执行

}else{

}

        //www.cnblogs.com

        //http://www.oschina.net/

        //csdn

        //http://www.iteye.com/magazines

        //51aspx源码网

01.分支结构

从这一章开始我们书写的代码可能不是从上到下顺序执行,就是程序的流程可以

发生跳转。这种结构分支结构。之前我们所有代码都是顺序执行。

02.逻辑运算符

&&:逻辑与  

   *表达式1&&表达式2 同真为真,其余为假

||:逻辑或  

   *:表达式1&&表达式2 有真必真,其余为假

  !:逻辑非

   *:取反

03.那些年,我们犯的错

     01.错误:javScore cannot be resolved

  解决方案:可能性有两种

            *:就是变量名书写错误

*:无法访问到该变量

02.不堪入目的在类里面直接写代码,代码没有出现在main方法中

04.if-else选择结构

     语法:if(){

}else{

}

05. java中产生随机数方法

  (int)(Math.random()*10); 

  范围:从0到1,能取到0,但是取不到1

06.多重if选择结构

  if(条件){

  }else if(){

  }else{

  }

  多重if各个分支如果顺序互换,语法不报错,但是会影响程序的运行结果 。

07.在java中,比较两个字符串是否相同,用的是equals,而不是==号。

08.嵌套if

  在一个ifelse选择结构中,又嵌套了另外一个完成的ifelse选择结构

  if(){

     if(){

}else{

}

  }else{

  }

作业时间:

1.第四章 Switch选择结构预习

2.日记本

3.单词3和4章

4.今天讲的

   产生1到3之间的随机数

   If-else

   多重if

   嵌套if

wps97FE.tmp

wps97FF.tmp

wps9810.tmp

回到顶部

第四章  Switch选择结构

01.使用Switch语句常见错误:

1.case后必加break,防止case穿透

2.case后面的变量必须各不相同

3.default块顺序可以变动,但要注意其执行顺序。通常,default块放在末尾,也可以省略

4.switch后面小括号中表达式的值必须是整型或字符型。

02.通过hasNextInt()方法来判定用户录入的内容是否 是数字

04.登陆素材

        System.out.println("********欢迎进入微冷的雨购物管理系统************");

System.out.println("菜单功能:");

System.out.println("\t1.登陆系统");

System.out.println("\t2.退出系统");

System.out.println("请输入您要操作的功能,输入数字即可,亲!!!!");

System.out.println("欢迎进入主界面,该软件为您提供了丰富的功能");

System.out.println("1.客户信息管理");

System.out.println("2.购物结算");

System.out.println("3.真情回馈");

System.out.println("4.注销");

                System.out.println("是否参加优惠换购活动:");

System.out.println("1:满50元,加2元换购百事可乐饮料1瓶");

System.out.println("2:满100元,加3元换购500ml可乐一瓶");

System.out.println("3:满100元,加10元换购5公斤面粉");

System.out.println("4:满200元,加10元可换购1个苏泊尔炒菜锅");

System.out.println("5:满200元,加20元可换购欧莱雅爽肤水一瓶");

System.out.println("0:不换购");

System.out.print("请选择:");

  作业时间

     01.15分钟提问单词和各种if

     02.颁发前3名奖品

     03.自行作业

00.预习第五章 循环结构

01.日记本写一篇

02.单词

03.博客文章(if-Switch选择结构)

wps9821.tmp

02.wps9822.tmp

wps9832.tmp

回到顶部

第五章 循环结构(一)

1.之前学习的两种结构

   01.顺序结构

   02.分支结构

   03.循环结构

2.While循环结构

   *while循环

循环四要素:01.初始变量  02.循环条件  03.改变迭代变量的值 04.循环体

   *:通过while循环解决“张浩写1000遍好好学习的问题”

*:字符串作为循环条件

     老师每天检查张浩的学习任务是否合格,如果不合格,则继续进行。

老师给张浩安排的每天的学习任务为:上午阅读教材,学习理论部分,下午上机编程,掌握代码部分。

*:初始变量为多个值的循环

2012年培养学员25万人,每年增长25%,请问按此增长速度,到哪一年培训学员人数将达到100万人?

3.练习

  *计算100之内的偶数之和

  *查询商品价格

  *结账和找零

4.do while循环结构

answer cannot be resolved(解析)

do{

}while(条件表达式);

do{

System.out.println("已经完成编码");

System.out.println("合格了吗?(y/n)");

answer=input.next();  //n

    }while(answer.equals("n"));

do-while循环的执行机制:

首先do所在的{}里面的内容执行一遍,然后拿变量answer和固定的字符串"n"做对比,如果

条件成立,那么继续执行do{}中的内容,如果不成立,那么就退出整个do-while循环。

5.断点调试步骤

设置断点

启动调试

单步运行

调试启动后,运行到设置断点的代码行将停住

点击F6可以单步运行程序,观察程序运行过程

观察变量

单步运行时可以在“变量”视图中看到变量当前的值

发现问题

修正代码,重新运行

解决问题

二、程序调试的目的:找出缺陷原因,修正缺陷

三、程序调试的主要方法:设置断点、单步执行、观察变量

wps9843.tmp

wps9844.tmp

回到顶部

第六章  循环结构(二)

1.for的出现是为了精简之前while和do-while循环的语法,将之前散乱排列的其中三个要素融合到了for循环固定的语法结构中

For(表达式1;表达式2;表达式3){

  表达式1:初始变量

  表达式2:循环条件

  表达式3:迭代变量 

}

作业:第七章项目

wps9854.tmp

日记

回到顶部

第八章  数组

1. 数组的定义:

解析:数组就是一组相同数据类型的集合,可以看成是一个承载一堆

相同类型数据的一个箱子。

2.定义一个变量相当于在内存上占据一块空间

  定义一个数组相当于在内存上占据一连串内存空间

3.通过length可以获取数组中一共有几个元素

4.案例

int[] nums=new int[3];

数组的类型其实上就是数组当中每个元素的类型。

String[] names=new String[3];//数组的声明

names[0]="张靓颖";

names[1]="刘德华";

names[2]="周星星";//赋值

//names[3]="巩俐";//下标越界

for(int i=0;i<names.length;i++){

  System.out.println(names[i]);//使用

}

double[] nums=new double[3];

nums[0]=1.0;

nums[1]=2.0;

nums[2]=3.0;

for(int i=0;i<nums.length;i++){

  System.out.println(nums[i]);

}

2.数组四要素

001.标识符:指的是数组的名字

002.数组元素:数组中的每一项数据都称为数组的一个元素

003.数组下标:某个元素在数据中的位置或者编号

004.数组类型:每一个元素的类型

6.注意点:数组一旦定义,不可以再改变

7.使用数组的优点?

解析:001.代码量减少了

      002.方便查找

8.定义数组的时候通过new关键字开辟空间

*********************************************************

我们的第三节课

3.会使用三种方式来对数组赋值

方式一:通过下标赋值

    names[0]

方式二:通过在声明的同时直接通过{}赋值

int[] nums={1,2,3};

方式三:循环赋值(借助数组的下标)

02.会通过循环的方式给数组元素赋值

03.常见错误

04.数组排序(升序)

05.打擂比较算法

  if(num>max){

    max=num;

  }

01.回顾数组

目的:为了方便的操作数据类型相同的一组数据,我们出现了数组。

因为使用数组可以简化我们对数据的存取操作。

int[] nums=new int[3];

String[] names=new String[3];

double[]  numbers=new double[3];

方式二:通过{}直接赋值

int[] nums={1,2,3,4};

*:如何获取数组中元素的个数?

解析:length

*:通过for循环逐个遍历数组中每个元素,然后输出

for(int i=0;i<nums.length;i++){

   System.out.println(nums[i]);

}

04购物金额结算

05.数组排序

如何对一些列数字进行降序排列??

解析:sun公司并没有提供一个方法专门用于降序排列,但是我们可以转换

一下思路,先对数组中元素进行升序排列,然后降序输出数组中元素。

031.补充问题:

在我们自己的类中,可以对多个系统类进行导入使用。例如可同时使用Arrays和Scanner

06.打擂比较算法

07.插入算法(专题来讲)

wps9865.tmp

两套代码:

Eg1:

public static void main(String[] args) {

// 我有一个按照升序排列的int类型数组

//现在我想将35扔到该数组中,但是得保证整个数组依然是升序排序

int[] nums={10,20,30,40};

int insertNum=25;

//01.打印原数组的内容

for (int i = 0; i < nums.length; i++) {

System.out.print(nums[i]+"\t");

}

//先大笑三声,终于出错了

//怕的是你想让程序,

System.out.println("");

//01.定义一个长度为原数组长度+1的数组

int[] newNums=new int[nums.length+1];

//02.将旧数组的第i项的值赋值给新数组

for (int i = 0; i < nums.length; i++) {

newNums[i]=nums[i];

}

//_10__  __20__  _30__   __40__  __0__

//03.找位置

int index=newNums.length-1;//应该将35扔到什么位置

for (int i = 0; i < newNums.length; i++) {

if(newNums[i]>insertNum){

//当前的i就是我要找的位置

//所以我将i的值赋值给index偷偷记录起来

index=i;

break;

}                     //[3]

}                         //35

//_10__  __20__  _30__   __40__  __0__

//04.元素后移,但是需要倒着移,将[i-1]的值赋值给第[i]

for (int i = newNums.length-1; i >index; i--) {

newNums[i]=newNums[i-1];

}

//05.给index位置重新赋值

newNums[index]=insertNum;

for (int i = 0; i < newNums.length; i++) {

System.out.print(newNums[i]+"\t");

}

}

Eg2:字符串相关

//插入算法

String[] songs={"Island", "Ocean",  "Pretty",  "Sun"};

for (int i = 0; i < songs.length; i++) {

System.out.print(songs[i]+"\t");

}

System.out.println("");

String insertSong="zoo";

//01.定义一个新数组,长度=旧数组长度+1

String[] newsongs=new String[songs.length+1];

//02.循环赋值

for (int i=0;i<songs.length;i++) {

newsongs[i]=songs[i];

}

//03.找位置

int index=newsongs.length-1;//找的位置

for (int i = 0; i < newsongs.length-1; i++) {

//半年时间理解一句话::

//如果一个对象是null,那么是不能使用它的任何属性和方法的

if (newsongs[i].compareToIgnoreCase(insertSong)>0) {

index=i;

break;

}

}

//04.循环后移,倒着移

for (int i = newsongs.length-1; i >index; i--) {

newsongs[i]=newsongs[i-1];

}

//05.重新给index位置赋值

newsongs [index]=insertSong;

for (int i = 0; i < newsongs.length; i++) {

System.out.print(newsongs[i]+"\t");

}

作业:1.日记本

      2.第八章预习(排序,打擂算法 ,插入算法)

     3.第七章项目

     4.上机练习1和2

3.我认为读书、首先要思考,要深入地思考。不思考,读书读多少遍也没有用。铅笔、纸,我个人认为都是读书时,非常重要的条件。阅读到一定阶段,就会思考,就会形成不同的主题。 随之,就会进行主题阅读。要学会有效地,系统地进行知识的连接。从不同的角度去创造性地思考问题。 
    4. 我平时工作很忙、下班后很累,回家后就想休息。我如何解决这种局面、首先要积极主动地去思考。不要让自己的每一天,平平淡淡地度过。自己主动地、持续地去创造一些幸福快乐的时刻、巅峰的时刻。 不要让自己的每一天碌碌无为。我的改进方法是,下班后,抽出一个小时去跑步,感受运动的巅峰时刻。这样下班后,就不很疲劳。学习、工作、休息就会非常有效率。 
   5. 没有时间来学习。 就学习本身而言,始终是最重要的事情,当然学习的方式,有很多种。 多反思,多问“为什么”,往往会找到问题的答案。我在使用番茄钟工作法之前,上班很累,效率很低,加班很多。使用番茄钟工作法之后,加班逐渐地少了。 
   6. 要学以致用,学习有目标,我在敏捷个人的年度回顾中曾提到了,像游泳时的状态,不游就会掉下去。没有目标就是这种情况。更具体的目标,就是我们面临的一个个的具体的问题。 

第九章 二重循环

回到顶部

第九章  二重循环

01.数组中插入元素的思想

   关键是步骤必须清楚

   001.将旧数组中每个元素复制到新数组中

   002.找位置:找到用户输入的歌曲song应插入的位置

        核心思想:将旧数组中第i项的值与song对比,如果

        大于0,那么证明该位置(index)就是我们要找的位置。

   003.index之后的元素后移,这里要注意,循环必须倒序执行。

       一定要注意循环条件,避免数组下标越界。

   004.给index位置赋值为song

02.二重循环

1.直角三角形

*

**

***

****

*****

*号(j)          行号(i)

1                 1

2                 2

3                 3

for(i=1;i<=3;i++){

   for(j=1;j<=i;j++){

   System.out.print("*");

   }

   System.out.println("");

}

*

***

*****

*******

*********

      i(行号)             j(*号个数)

         1                     1

2                     3

3                     5

4                     7

5                     9

j=2*i-1

*****

****

***

**

*

       i(行号)             j(*号个数)

         1                     5

2                     4

3                     3

4                     2

5                     1

i+j=6

  j=6-i

等腰三角形

    *

   ***

  *****

*******

*********

for(int i=1;i<=5;i++){

   //第一个循环控制空格

   for(int j=1;j<=5-i;j++){

     System.out.print(" ");

   }

   //第二个循环控制*号

   for(int k=1;i<=2*i-1;k++){

     System.out.print("*");

   }

   System.out.println("");

}

解决问题的核心就是求i和j的关系

   行数(i)               空格数(j)                   星号(k)

     1                      4 1

     2 3 3

     3 2 5

     4 1 7

     5 0 9

i和j,i和k的关系

  j=5-i

  k=2*i-1

菱形打印

   *

  ***

*****

*******

*****

  ***

   *

解决问题的核心就是求i和j的关系

   行数(i)     空格数(j)      星号(k)  

i和j的关系

wps9876.tmp

*****

***

  *

***

*****

在二重循环中,如果内层循环中有break关键字,那么她只能跳出当前循环,不能跳出外层循环。

            *********

           *       *

          *********

第十一章  类和对象

回到顶部

第十一章 类和对象

1.什么是对象?

解析:是不是对面有一个美女你“狂敲键盘”就是面向对象编程呢??

  真正的对象:在现实的生活中,你肉眼能看的见或者摸得着的所有的物体都可以看成是对象,但是

  判定是对象还是类有一个核心点,就是

    *对象是能唯一区别于其他事物的一个个体

2类的概念:

  具有相同属性(静态特征)和行为(操作)的一系列事物的统称。

3.类和对象的关系

解析:类是对象的模板,对象是类的实例

解析:public class Student{

        //内容

public String name;

public int age;

public String address;

//方法

public void SayHello(){

  System.out.println("早上好!");

}

      }

规范:在java中,定义类必须首字母大写。

3.如何创建一个类的对象?

解析:Student stu=new Student();

       stu.name="张靓颖";

   stu.age=100;

   stu.address="北京某地";

   stu.SayHello();

4.大家眼中的对象是神马???

解析:”另一位“,”客户“

你自身 ,一个水杯 ,显示器,

5.对象:现实生活中,能看得到,摸得着的有区别于其他事物独有特征的东西我们就可以称之为对象 。

每一个对象都有自身特有的特征,这些特征包括动态和静态两个方面。

动态就称为操作(方法) ,静态特征就称为属性。

6.Java,C#都是面向对象的语言,C语言面向过程

7.登陆:十一

  注册

  购物车添加商品  9.5

  订单形成

8.oo:Object 

oop:Object Oriented Programming,OOP,面向对象编程

OOD:Object Oriented Designer:面向对象设计

架构师

分析师

小胖:12306购票的车次查询

小张:12306购票的网上支付功能

数值类型数据赋值图

wps9886.tmp

数组赋值图

wps9897.tmp

04.所有的类名首字母都要大写

回到顶部

第十二章 类的无参方法

1.定义方法的语法:5要素

访问修饰符  返回值  方法名(参数){

  方法体

}

2.如果在同一类中,那么方法A调用方法B,直接通过方法名就可以调用。

如果在类A中,想要调用类B中的方法say(),那么需要先创建出类B的对象,然后调用。

wps9898.tmpwps98A8.tmpwps98A9.tmp

2.局部变量和成员变量

作用域不同

局部变量的作用域仅限于定义它的方法

成员变量的作用域在整个类内部都是可见的

初始值不同

Java会给成员变量一个初始值

Java不会给局部变量赋予初始值

3.JavaDOC

讲解要点:JavaDoc能够从源代码中抽取类、属性、方法等的注释,形成一个配套的API帮助文档。使用Eclipse生成JavaDoc文档注释有两种方法:

1.使用命令行方式生成
javadoc -d doc -subpackages mine

参数 说明

-d 指定API文档的输出目录,默认是当前目录。建议总是指定该参数。

-sourcepath 指定源代码路径,默认是当前目录。 此参数通常是必须的。

-subpackages 以递归的方式处理各子包。关键参数!如果不使用本参数,每次只能处理一个子包(或需手工列出所有子包)。

wps98BA.tmp

wps98BB.tmp

wps98BC.tmp

再加上-author才输出对应的作者信息

wps98BD.tmp

注:以上示例要求 javadoc.exe 所在路径位于系统环境变量“PATH”中。

支付宝:接口

支付宝做方法定义 的

二流的公司,做方法调用

作业环节

01.第十四章和第15章预习

02.课后作业题

03.日记

04.Blog文章,下次听写带返回值的方法

第十三章 人机猜拳系统

回到顶部

第十三章 人机猜拳系统

1.项目概述

由于这是大家第一次接触项目,希望每个人都能做到问心无愧。认真,仔细的对待这次项目。还有,希望大家能将每一次课后作业和上机练习都看做是在做一个项目 。

2.项目参与者图解分析

wps98CE.tmp

3.人机猜拳运行效果图

wps98CF.tmp

wps98DF.tmp

4.思路分析:

1.写一个电脑类(Computer)

  要点:属性

01.电脑昵称 name

02.电脑得分 score

方法

01.机器出拳 showFist()

关键点:

01.生成1到3的随机数

        方法一:int result=(int)(Math.random()*10)%3+1;

方法二:引入Random类

import java.util.Random;

Random random=new Random();

int ran=random.nextInt(3)+1;

02.用switch判断生成的随机数

如果为1:剪刀

如果为2:石头

如果为3:布

default:未知错误

这里不用考虑输入其他数字的情况,

因为数字不是用户输入的,而是

通过随机数生成的,只能是1,2,3

03.最后需要将选择的值返回

2.写一个玩家类(Person)

要点:同上

但是要注意一点:此时switch中是用户输入的值,要做

对应的处理,如果用户输入错误,

让用户循环输入

3.写一个裁判类

要点:01. Person person;//用户

Computer computer;//电脑

int count;//对战次数

//对值进行初始化

public void initial(){

person=new Person();

computer=new Computer();

count=0;

}

02.绘制游戏菜单

     001.先调用初始化方法initial

                     002.然后绘制菜单

System.out.println("---------欢迎进入微冷的雨猜拳系统---------");

System.out.println("\n\t\t******************");

System.out.println("\n\t\t***游戏开始了 ********");

System.out.println("\n\t\t******************");

System.out.println("出拳规则:1.剪刀2.石头3.布");

//选择对方角色

System.out.print("\n请选择对方角色(1.刘德华2.周星星3.巩俐):");

Scanner input=new Scanner(System.in);

int role=input.nextInt();

      003.保存用户选择的角色,赋值给computer类的name属性

004.分别调用机器和玩家的出拳方法,然后对出拳结果比较,

005.显示比赛结果(之前先要计算比赛结果)

4.调用裁判类输出结果

第十四章   带参方法

回到顶部

第十四章 带参方法

00.带参方法的语法

public  int  say(String name){

}

01.调用带参方法时,有哪些注意事项?

解析:实参类型,数量,顺序必须与形参(方法定义中的参数)一致。

Public class Student{

   Public void say(String name ,int age){

  }

}

Public class MyMain(){

   Pulbic static void main(String[] args){

     Student stu=new Student();

     Stu.say(“李小龙”,20); 

  }

}

02.包的作用是什么?

解析:为了避免命名冲突,为了更好组织类,方便查找。

包的用途:1.方便管理

          2.快速检索

          3.避免冲突

03.带参方法案例

wps98F0.tmp

wps9900.tmp

//单行注释Ctrl+/  多行注释:Ctrl+Shift+/  取消多行注释:Ctrl+Shift+\

添加学生 :带一个参数的方法

显示学生信息 无参

按区间查询学生信息  3个参数()

修改学生信息   2个参数(String oldName,String newName)

数组作为参数

对象(自定义类型作为参数)

wps9901.tmp

wps9902.tmp

Null是不能调用它的任何属性和方法的

如果包a中有一个类Student,想要在包b中使用Student类,必须加上导包语句

Import a.Student;

wps9913.tmpwps9924.tmpwps9934.tmpwps9935.tmpwps9965.tmp

第十五章 字符串

回到顶部

第十五章 字符串

01.如何定义一个字符串?

  解析:String name="张靓颖";

        String name2=new String("巩俐");

02.字符串常用方法

01.length():返回一个字符串中的字符总个数

       案例:

String word="我爱北京天安门, 我爱中国毛爷爷";

//统计word中的字符总个数

System.out.println("长度是"+word.length());

02.equals():判定两个字符串存储的内容是否一致,如果相同,返回true。

String name="001";

String name2="001";

if (name.equals(name2)) {

System.out.println("equals");

}else {

System.out.println("不相等");

}

//输出equals

03.equalsIgnoreCase():忽略大小写。

Scanner input = new Scanner(System.in);

while(true){

System.out.print("请输入用户名:");

String name  = input.next();

System.out.print("密码:");

String mima = input.next();

if(name.equalsIgnoreCase("Tom")&&mima.equals("1234")){

System.out.println("登陆成功");

}else{

System.out.println("登录失败");

}

}

04.toLowerCase():将一个字符串全部转换成小写。

05.toUpperCase():将一个字符串全部转化成大写。

06.name.conCat(String str):

作用:将str拼接到name变量上,形成一个大字符串返回。

String wordLeft="今天看到很多人都倒下了";

String wordRight="死很容易,活着很难";

String result=wordLeft+wordRight;

//方式二:

String result2=wordLeft.concat(wordRight);

System.out.println(result2);

07.substring(int beginIndex)

  参数:从第几个位置开始截取,从0开始数,一直街取到字符串结束

  返回值:截取后的内容

案例:

  String name=”中国是一个伟大的国家”;

  String result=name.substring(8);

  Substring(int beginIndex,int endIndex)

参数一:从字符串的第几个位置开始截取,从0开始数

参数二:截取到第几个位置结束 ,从1开始数

案例 :

String name="中国是一个伟大的国家,我爱你";

//我想得到:”我爱你“   "国家"

String result=name.substring(8,10);

System.out.println(result);

08.indexof(“字符串”)获取一个特定字符串在大字符串中的位置。

  参数:传入一个字符串

  返回值:传入的字符串在大字符串中的位置。

案例 :

String name=“yymqqc@126.com”;

Int index=  Name.indexof(”@”);

09.lastIndexof(“要查找的字符串”):返回最后一次出现某个字符串的位置

10.trim():只能移除两端的空格,中间的空格无法移除

11.Split(“分割符”)

返回的结果是一个字符串数组

如何定义一个StringBuffer类的对象?

  StringBuffer sb=new StringBuffer;

System.out.println("欢 迎 使 用 迷 你 DVD 管 理 器");

System.out.println("-------------------------------------");

System.out.println("0. 借出排行榜");

System.out.println("1. 新 增 DVD");

System.out.println("2. 查 看 DVD");

System.out.println("3. 删 除 DVD");

System.out.println("4. 借 出 DVD");

     System.out.println("5. 归 还 DVD");

System.out.println("6. 退         出 ");

System.out.print("--------------------------------------\n");

System.out.print("请选择: ");

Scanner input = new Scanner(System.in);

posted on 2016-01-22 23:08  放飞理想  阅读(1842)  评论(1编辑  收藏  举报

导航