半个月总结

来源:互联网 发布:win10 mac地址怎么修改 编辑:程序博客网 时间:2024/04/30 07:56

 

Javase总结

1JAVASE 桌面应用开发版本

2JAVA是一门高级的编译解释型的计算机编程语言。

3JAVA的历史与创造者:

199012java诞生,由詹姆斯*高斯林和一群做c++的程序工程师一起发明的。这时的名字叫oak

1995年被orakle公司收购,正式更名为java

4、开发JAVA程序的步骤

1)编写一个JAVA源文件(*.java

2)在JAVA源文件中写个类

Public class Asss{

}

(3)类里面书写方法

public class Asss{

public static void mainString[ ] args{

}

}

(4)用编译器来编译java源文件(*.class,字节码文件)

(5)用解析器来解析字节码文件

6)系统执行操作

5java基本数据类型

1)整型(byte (字节整型8位,范围为-2^72^7-1)   short(短整型16,范围为-2^152^15-1)    int(整型32,范围为-2^312^31-1)    long(长整型64,范围为-2^642^64-1

注意:在没有定义数值类型的时候:默认为int类型;

例如:short a=1;(华为测试题)

  a=a+1//这是错误的;因为没有定义1的类型所有默认为计算的结果为整型;

因此要从到大范围到小的范围要进行强制转换;小范围到大范围自动转换;

(2)浮点型(float(单精度浮点型,32,范围为-2^322^32-1 double(双精度浮点型,64,范围为-2^642^64-1)

注意:没有定义浮点型的类型的时候,默认为double类型,要为float的类型,需要在数字后面加上一个f/F;

例如:

float a=1.0

//这是错误的,对于初始化的时候 的数值默认为double类型的,所以要加上f,表示float类型

(3)字符型(char)

例如:

char s=’A’;

用单引号隔开;

String s=” AS”;

用双引号隔开; 

(4)布尔型(boolean)

例如:

Bloolean temp=true

复合数据类型:

以后才学,现在略;

6java的注释

1)单行注释 //

2)多行注释 /*   */

3)文本注释/**   */

7、标识符有(字母,下划线,数字,美元符号)

(1)不能与数字开头

(2)不能使关键字(当前我学过的关键字有:classnullpublic void等等)

(3)区分大小写

8、变量的初始化

数据类型  标识符;int a;

变量的初始化

1) int a=0;

2) int a; 

  a=0;

9、运算符

1)算术运算符

==+-*/%

(2)关系运算符

>=,>,<=,<

(3)逻辑运算符

|| ,&&,|,&

(4)位运算符

(5)其他运算符

(6)三目运算符 ?:

例如:

语句的真假判断?为真的时候输出的值:为假的时候输出的值

10、流程控制

if()

(1)单分支:

if(判断条件){

输出语句;

}

(2)双分支:

if(判断条件){

输出语句;

}else{

输出语句;

}

(3)多分支:

if(判断条件){

输出语句;

}

else if(判断条件){

输出语句;

}

else{

输出语句;

}

(4)嵌套:

if(){

if(){

}

}

注意:使用if判断语句的时候,根据程序执行的顺序来判断的;if或者是else if括号里面的为布尔类型的值,或者是表达式;比如:temp为真的时候,里面的表达式的值都是为真的时候才进行输出;

For循环语句的使用:

(1) 格式为:

Forint a=0a<=10;a++{

}

(2)嵌套循环的格式为:

Forint a=0a<=10;a++{

Forint i=0i<=10;i++{

}

}

对于for循环的使用特点是:执行一次后一定会加加1;在执行下一次;对于嵌套循环的最里面的计数器的值是,外层循环结束后,都会重新从1开始;而且,这里的计数器只是记录的是数值而已;初始值为0,1都可以;只是根据情况进行选择;

While循环的格式:

Int a=1

Whilea<4{

i++;

}

While循环也可以用嵌套的,但是循环的次数是不一定的,i++的次数是一定的;

Do循环:

格式为:

Do{

语句;

I++

}whilei<5

注意:这个循环至少执行一次;

Swith语句:

格式为:

Switch(intshortcharbyte类型的表达式){

Case 1

输出语句;

Break

Case 2

输出语句;

Break

Case 3

输出语句;

Break

}

11.数组

一维数组:

静态初始化:

Int[] a={1,2,3,4,5,6};

动态初始化:

Int[] a=new int[5];

二维数组:

静态初始化:

Int[][] a={{1,2,3,4,5,6},{1,2,3,4,5,6},{1,2,3,4,5,6}};

动态初始化:

Int[] []a=new int[5][5];

操作数组的时候,我们都是来操作的是数组的下标;操作下标,就可以操作数组里面的值;

对于数组的遍历,要用循环来遍历,根据下标来判断的;

12.方法的封装的格式:

无返回值的:
public static void 方法名字(参数列表){

方法体;

}
有返回值的:
public static 类型 方法名字(参数列表){

方法体;

}
注意,参数列表的意思是方法体里面有操作的数;三个不同:参数列表的类型不同,名字不同,个数不同;

方法的调用:

可以方法调用方法;

方法的递归调用:

求阶乘:

例如:

Public static int jc(int a){

If(a==1){

Return 1;//这里代表最后一个数就退回,

}

Return a*jc(a-1);//这里代表自己调用自己;

}

已经封装好了的方法的使用:

Public static void main(){

方法名字(变量值);

}

14,对数组的排序:

分为选择排序法,和冒泡排序法,快速排序法:

以此的格式为:

调用包:

Import java.util.Arrays;

Arrays.sort(数组名);

For(int i=0;i<10;i++){

For(int j=i+1;j<10;j++){

If(a[i]>a[j]){

Int temp=a[i];

a[i]=a[j];

a[j]=temp;

}

}

}

之前做过的提,对题的总结:

水仙花数:

public class Asss{

public static void main(String []args){

int a=254;

int bw=a/100;

int sw=a/10%10;

int gw=a%10;

if(bw*bw*bw+sw*sw*sw+gw*gw*gw==a){

System.out.println(a+"是水仙花数");

}

else{

System.out.println(a+"不是水仙花数");

}

}

}

(学点1)         这里是使用数组的操作他的每一位的数字,然后进行比较;

对于整形的类型容易错的:

public class Asss{

public static void main(String []args){

short a=1;

a=a+1;//错误,改成  a=(short)(a+1);//直接运算的话没有定义1的类型,就是默认为结果为整形的,而且不会自动转化

System.out.println(a);

}

}

public class Asss{

public static void main(String []args){

//float a=1.1234;//错误,改成  

float a=1.1234f;//double a=1.1234f;没有f默认为float

System.out.println(a);

}

}

这些,代表,取位数的运算;

public class Asss{

public static void main(String []args){

int a=24;

int sw=a/10;//这些,代表,取位数的运算;

int gw=a%10;

if(sw>gw){

int s=gw*10+sw;

System.out.println(s);

}

else{

int g=(sw+1)*10+gw;

System.out.println(g);

}

}

}

这代表,条件和逻辑或的运算

public class Asss{

public static void main(String []args){

int a=2;

if(a==1||a==3||a==5||a==7||a==8||a==10||a==12){

System.out.println(a+"31");

}

else if(a==4||a==6||a==9||a==11){

System.out.println(a+"30");

}

else{

System.out.println(a+"28天 或者29");

}

}

}

这代表逻辑与和条件范围的运算;

public class Asss{

  public static void main(String []args){

  int a=7;

if(a<=6&&a>=0){

System.out.println(a+"岁为幼儿");

}

else if(a>6&&a<=12){

System.out.println(a+"岁为儿童");

}

else if(a>12&&a<=16){

System.out.println(a+"岁为青少年");

}

else if(a>16&&a<=30){

System.out.println(a+"岁为成年人");

}

else{

System.out.println(a+"岁为中年人");

}

}

}

这的代表,嵌套

public class Asss{

public static void main(String []args){

int a=68;

if(a>=0&&a<=100){

int s=a/10;

switch(s){

case 10:

System.out.println("优秀");break;

case 9:

System.out.println("良好");break;

case 8:

System.out.println("中等");break;

case 7:

case 6:

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

default:

System.out.println("不及格");break;

}

}

else{

System.out.println("无效分数");

}

}

}

这代表计数器的使用方法:

public class Test9{

public static void main(String []args){

int a=0;

switch(a){

case 0:

a++;

case 1:

a++;

case 2:

a++;

System.out.println(a);

}

}

}

if 的嵌套,使用

public class Asss{

public static void main(String []args){

int a=121;

if(a>=0&&a<=120){

if(a>=23&&a<=30){

System.out.println("适合结婚年龄");}

else{

System.out.println("未婚或者已婚");

}

}

else{

System.out.println("无效年龄");

}

}

}

public class Demo{

public static void main(String []args){

int i;

for(i=0;i<=100;i++){

if(i/2!=0)System.out.println("素数:"+i);

}

}

}

用来计算::::   每个位的位数的;

public class Asss{

public static void main(String []args){

int i;

for(i=0;i<=1000;i++){

int qw=i/1000;

int bw=i/100%10;

int sw=i/10%10;

int ge=i%10;

if(ge==sw||(ge==sw&&sw==bw)||(ge==sw&&sw==bw&&bw==qw))System.out.println(i);

}

}

}

对这一道题进行,全面的总结:

public class Asss{

//定义一个方法判断点数//参数列表里面代表的是变量类型和变量的名字,这里是不能进行初始化的,只有在调用方法的时候,在主方法里面的()内输入变量的值

public static String  getNum(String str){

String s="";

if(str.equals("A")){//.equals()代表的是对于字符串类型的比较的;目前只学了相等的;

s="1";

}else if(str.equals("J")){

s="10";

}else if(str.equals("Q")){

s="10";

}else if(str.equals("K")){

s="10";

}else{

s=str;

}

return s;//变量的名字,返回的类型;

}

//定义一个方法判断重复

public static boolean  isRepeat(String c,String[][] cards){

//返回true为不重复,返回false重复

boolean temp=true;

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

if(cards[i][0]!=null){

if(cards[i][0].equals(c)){

temp=false;

break;

}

}

}

return temp;//真和 假的判断,使用的办法而已:

}

public static void main(String[] args){

String[] colors={"红桃","黑桃","方块","梅花"};

String[] nums={"A","2","3","4","5","6","7","8","9","10","J","Q","K"};

String[][] cards=new String[52][3];//{{"黑桃K","13"},{"黑桃A","1"},{"梅花5","5"}}

int i=0;

while(i<cards.length){

String[] card=new String[3];//定义二维数组里面的数;

int a=(int)(Math.random()*nums.length);//这里表示随机数的(0--1*数字,表示的范围;

int b=(int)(Math.random()*colors.length);

String c=colors[b]+nums[a];//字符串也可以直接相加

if(isRepeat(c,cards)){//c代表随机一次的牌,cards代表总的牌,只是初始化为0;;

card[0]=c;

String num=getNum(nums[a]);

card[1]=num;

card[2]=colors[b];

cards[i]=card;

}else{

continue;

}

i++;

}

//随机产生一张牌

int j=0;

String[][] sjp=new String[6][3];//定义的两张牌;

while(j<6){

int m=(int)(Math.random()*cards.length);

String c=cards[m][0];//前面的为二维数组,所有这里赋值也要定义为二维数组;//只是赋值第一层里面的第二层的第一个数

if(isRepeat(c,sjp)){

sjp[j]=cards[m];//表示的是第一层;

}

else{

continue;

}

j++;

}

//System.out.print(sjp[0][0]+sjp[1][0]+sjp[2][0]+sjp[3][0]+sjp[4][0]+sjp[5][0]);

int wj1=Integer.parseInt(sjp[0][1])+Integer.parseInt(sjp[1][1])+Integer.parseInt(sjp[2][1]);

int wj2=Integer.parseInt(sjp[3][1])+Integer.parseInt(sjp[4][1])+Integer.parseInt(sjp[5][1]);

String zf1=sjp[0][0]+sjp[1][0]+sjp[2][0];

String zf2=sjp[3][0]+sjp[4][0]+sjp[5][0];

if(wj1<21&&wj2<21&&wj2>wj1){

System.out.print("玩家2:  "+zf2+"      赢家                 "+"玩家1:  "+zf1);

}

if(wj1<21&&wj2<21&&wj1>wj2){

System.out.print("玩家1:  "+zf1+"      赢家                  "+"玩家2:  "+zf2);

}

if(wj1>21&&wj2<=21){

System.out.print("玩家1:  "+zf1+"      爆炸                            "+"玩家2:  "+zf2+"  赢家");

}

if(wj1<=21&&wj2>21){

System.out.print("玩家2:  "+zf2+"      爆炸                            "+"玩家1:  "+zf1+"  赢家");

}

if(wj1>21&&wj2>21){

System.out.print("玩家2:  "+zf2+"      爆炸                            "+"玩家1:  "+zf1+"  爆炸");

}

}

}

0 0
原创粉丝点击