微冷的雨Java基础学习手记(一)

使用Java理解程序逻辑java

       之凌波微步程序员

船舶停靠在港湾是很安全的,但这不是造船的目的web

                                                北大青鸟五道口原玉明老师出品算法

1.学习方法:

01.找一本好书编程

初始阶段不适合,能够放到第二个阶段,看到知识点时,要进行验证数组

02.查看帮助文档和搜索引擎的使用浏览器

借助网络上的Blog文章安全

03.不要急功近利网络

不要抱着速成的想法,不然必然走弯路
学习编程不是一蹴而就的事情
付出的成本高,才能有一个高薪的收入架构

04.不要浮躁

不要什么都学,只学有用的

浮躁的程度和技术水平成反比的
走本身的路,让别人去浮躁去吧!

天天问问本身,我是否是开始浮躁了,不能人云亦云.

05.学习语言基础很重要

基础不扎实,开发出的程序就很危险
将所学的用到开发中去

06.何时去看别人的代码?

揣摩编写代码人的思路,远比本身写软件要可贵多
初学者不要去看别人的代码

在纸上把调用关系画出来,抓主线.

07.如何提升?

有主动性。学习的欲望要强。上网找别人的问题,为本身来提升

08.培养发现问题、思考问题和解决问题的能力

出错信息,异常信息
养成发现问题、思考问题和解决问题的能力

这种能力受益一生,且不随时间变化

09编程的思想

多用心,多动手
程序运行的原理和机制
编程的目的,函数的调用,内存模型

10.先学脉络,再学枝叶

第一章  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能够单步运行程序,观察程序运行过程

观察变量

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

发现问题

修正代码,从新运行

解决问题

2、程序调试的目的:找出缺陷缘由,修正缺陷

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

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);

相关文章
相关标签/搜索