三次Java实验整理汇报:
*第一节
eclipse操作,建Javaproject项目(可直接用中文名命名)->建包与类(名字相同) ->public static void main(String[] args){ }
同一个项目里可有多个包
从控制台输入变量:run configurations
引用import写在package之后,class之前:
引用目前已经接触的几种:
import java.util.*; ------Scanner sc=new Scanner(System.in);int a=int new int[4];a[i]=sc.nextInt;好像是用于控制台输入变量并使用??
import javax.swing.JOptionPane; ------引用消息框进行输入输出
import java.awt.Graphics;//
import javax.swing.*;//这两个是画图所学,一脸懵逼
import static java.lang.Math.*;//应用数学函数 静态调用 类名+方法Math.abs()
----System.out.println(abs(-100));等同于System.out.println(Math.abs(-100));
import java.math.BigInteger;//进行无限大数据运算
*第二节
语言规范,首先一直不太重视的是命名,这里要提
类名大写开头如FindMax,常量名全大写MAX-HIGHT,函数小写加大写getAge
其次在判断字符进行加减乘除时候,字符型要用‘ ’括起来
原是数据类型:Java只有八种其他的类型都是用于引用的。这里引用类型的“=”判断与“.equals()”是一样的都是判断数值。
枚举类型enum Size{SMALL,MEDIUM,LARGE};Size s=Size.SMALL; //将字符串转换为枚举类型Size t=Size.valueof("SMALL");//进行遍历MyEnum value:MyEnum.values();
枚举类型相同的值引用同一个对象。
在运行时读入用户输入1.使用import javax.swing.JOptionPane:
String firstNumber =
JOptionPane.showInputDialog(“Enter :" );
number1 = Integer.parseInt( firstNumber );
JOptionPane.showMessageDialog(
null, "The number is " + number, "Results",
JOptionPane.PLAIN_MESSAGE );
System.exit( 0 );
2.imports java.util.*;
Scanner in=new Scanner(System.in);
System.out.print(“What is your name?”);
String name=in. nextLine();//这里nextInt的区别
System.out.println("Hello, " + name)
强制数据转换:
1.整型:int number = Integer.parseInt(numberString );
2.double:double number1 = Double.parseDouble(firstNumber);
*课后:
随机数生成验证码;
int intVal = (int)(Math.random() * 26 + 97);//生成一个97~122的int型的整数
result = result + (char)intVal;//将intValue强制转换为char后连接到result后面
*实验:
回文数:
猜数字:
消息框输入输出并进行加减乘除运算:
*第三节
定义的函数书写:
权限+static+返回值类型+方法名(参数列表){ return }
使用方法:
类名+方法 或者 方法名
这里注意函数定义通常会加上static否则要通过初始化new,再调用 如
MyClass obj = new MyClass();
class MyClass {
// 公有字段
public String Information = "";
//数据成员设置为私有的
private int value;
//定义的函数设置为公有的
public int getValue() {
return value;
}
}
利用Math.Random产生随机数,但可能会有规律可寻
Math.random() ,生成一个0~1之间的随机小数。
Math.random()*6,生成一个0~5之间的随机小数。
(int) (Math.random()*6), 把生成的0~5之间的随机小数,强制取整,最终是0~6之间的随机整数
(int)(Math.random()*6)+1, 生成一个1~7之间的随机数。
利用seed时间产生无规律的随机数:
Random类import java.util.Random;
单纯产生1~50随机数
Random r1 = new Random(50);//产生0~50的随机数
使用时间作为参考数
Random r4 = new Random(System.currentTimeMillis());
r1.nextInt();r1.nextBoolean();r1.nextGaussian();r1.nextDouble();//产生类型数据
参数可变的方法:
可变参数的方法该参数只能放在参数列表的最后面;
for(double v:values)增强的for循环,相当于把values数组里的每一个值取出赋于v,直到结束
方法重载的方法:
(1)方法名相同;
(2)参数类型不同,参数个数不同,或者是参数类型的顺序不同
注意:方法的返回值不作为方法重载的判断条件
处理无限大的数据加减乘除:
BigInteger类引用import java.math.BigInteger;
相加a.add(b);同样,相减 subtract();相乘 multiply();相除 divide();求余 remainder();
Math函数的一些方法:
http://zhidao.baidu.com/link?url=PnME6Xgb9xmX3mKMNijn-p4pKMaTYNXNzPSQJ_oN0h4xTx1zEURwErzaXCz-0xa8jEwI_qrHOIHMTknV3fdlIa
二维数组:写法很多选一种就好
int b[][];//定义
b=new int[n][n];//分配空间
short[][] numfour=new short[5][8];//定义并分配空间
int[][] numseven=new int[][]{{10,20,30},{40,50},{60}};//定义不规则的2维数组同时赋初始值
int[][] numeight={{100,200,300,400},{500,600,700,800},{900,1000,1100,1200,1300}};// 定义不规则的2维数组同时赋初始值;
......
递归与递:
写杨辉三角作业时发现递推与递归看错了!然后进一步发现!握草!这个我也不知道啊!我不知道啊!不知道啊!啊!
递推是如:
int sum=0;
for(int i=0;i<n;i++){
sum=sum+i;
}//从小到大
递归是如:
public static int qH(int a){
if(a==0) return 0;
if(a==1) return 1;
else
return a+qH(a--);
}//从大到小
字符串问题:
首先问题出现是在判断回文数时
String x=sc1. nextLine();//注意哦,int a=sc.nextInt();Int 与Line 的不一样!
int i=s.length();//字符串求长度,有自己的函数
char[] ch1=s.toCharArray();//将string类型转换为char类型,为什么要转换呢?因为char有数组string没有呀
public static boolean hwsPD(String s){
int i=s.length();
char[] ch1=s.toCharArray();//转换为字符串
if(i<1) return false;//<1
else if(i==1) return true;//=1
else if(s.charAt(0)!=s.charAt(i-1)){
return false;}
return hwsPD(s.substring(0,i-1));
}
str.substring(3,7)返回字符串str中的第1个到第3个子串不包括第三个字符
String str="1234567";
str=str.substring(1, 3);
System.out.println(str);
输出为23