JAVA例题3.docx
《JAVA例题3.docx》由会员分享,可在线阅读,更多相关《JAVA例题3.docx(24页珍藏版)》请在冰豆网上搜索。
JAVA例题3
例3-1对象中成员变量的灵活定义及使用
本例模拟通讯录功能,定义了Person类保存人员信息,能够对用户输入的姓名、性别、电话号码进行保存,还可进行分类。
Person类的多个对象就是通讯录中的一套套完整信息。
importjava.util.Scanner;
classPerson{
Stringname;
charsex;
StringphoneNumber;
Stringcategory[]={"同学","同事","朋友","家人"};
inti;
voidsetInfo(){
intn;
Scannerreader=newScanner(System.in);
System.out.print("姓名:
");
name=reader.next();
System.out.print("性别:
");
sex=reader.next().charAt(0);
System.out.print("电话号码:
");
phoneNumber=reader.next();
do{
System.out.print("选择分类:
1.同学2同事3朋友4家人请选择:
");
i=reader.nextInt()-1;
}while(i<0||i>3);
}
voidshowInfo(){
System.out.println(name+"\t"+sex+"\t"+phoneNumber+"\t"+category[i]);
}
}
publicclassPersonTest{
publicstaticvoidmain(String[]args){
Personp[]=newPerson[3];
for(inti=0;i<3;i++){
p[i]=newPerson();
System.out.println("------请输入第"+(i+1)+"个人的信息------");
p[i].setInfo();
}
System.out.println("------------------------------------");
System.out.println("姓名\t性别\t电话号码\t分类");
for(inti=0;i<3;i++)
p[i].showInfo();
}
}
例3-2熟悉Java的基本数据类型
publicclassBasicDataTypes{
publicstaticvoidmain(Stringargs[]){
byteb=0x55;//将十六进制数据赋值给b
shorts=0x55ff;//将十六进制数据赋值给s
inti=1000000;
longl=0x10EF;//将十六进制数据赋值给l
charc='*';
floatf=0.23f;
doubled=0.7E-3;//将科学计数法表示的浮点型数据赋值给d
booleanbool=true;
System.out.println("byteb="+b);
System.out.println("shorts="+s);
System.out.println("inti="+i);
System.out.println("longl="+l);
System.out.println("charc="+c);
System.out.println("floatf="+f);
System.out.println("doubled="+d);
System.out.println("booleanbool="+bool);
}
}
例3-3熟悉Java中的各类型的转换
publicclassConversion{
publicstaticvoidmain(Stringargs[]){
byteb;
inti=257;
doubled=323.567;
charch;
shorts;
b=(byte)i;//将整型变量i的数据强制类型转换为byte类型赋值给b
System.out.println("int→byte例:
int型"+i+"→byte型"+b);
i=(int)d;//将双精度类型变量d的数据强制类型转换为int型赋值给i
System.out.println("double→int例:
double型"+d+"→int型"+i);
b=(byte)d;//将双精度类型变量d的数据强制类型转换为byte型赋值给b
System.out.println("double→byte例:
ddouble型"+d+"→int型"+b);
ch=(char)94;//将int型数据94强制类型转换为char类型赋值给ch
System.out.println("94→char例:
int型94→char型"+ch);
s=(short)4000;//将int型数据4000强制类型转换为short型赋值给s
System.out.println("4000→short例:
int型4000→short型"+s);
}
}
输出显示为:
int→byte例:
int型257→byte型1
double→int例:
double型323.567→int型323
double→byte例:
double型323.567→int型67
64→char例:
int型64→char型@
4000→short例:
int型4000→short型4000
int→byte例:
int型257→byte型1
double→int例:
double型323.567→int型323
double→byte例:
double型323.567→int型67
97→char例:
int型97→char型a
4000→short例:
int型4000→short型4000
例3-4字符串的方便使用
publicclassStringTest{
publicstaticvoidmain(String[]args){
Strings1="你好啊~!
",s2="hello~^_^";
System.out.println("字符串s1的内容是:
"+s1);
System.out.println("字符串s2的内容是:
"+s2);
s1=s2;
System.out.println("将s2赋值给s1后,");
System.out.println("字符串s1的内容是:
"+s1);
System.out.println("字符串s2的内容是:
"+s2);
}
}
输出显示为:
字符串s1的内容是:
你好啊~!
字符串s2的内容是:
hello~^_^
将s2赋值给s1后,
字符串s1的内容是:
hello~^_^
字符串s2的内容是:
hello~^_^
例3-5不同类型数据间的混合算术运算
publicclassMixTest{
publicstaticvoidmain(String[]args){
intiNum1=10;
doublefNum2=25.5;
charchNum3='a';
Stringstr1="结果是";
System.out.println(iNum1+"%6"+"="+iNum1%6);
System.out.println(iNum1+"/6"+"="+iNum1/6);
System.out.println(fNum2+"%"+iNum1+"="+fNum2%iNum1);
System.out.println(iNum1+"*"+fNum2+"%125"+"+"+chNum3+"="+
(iNum1*fNum2%125+chNum3));
System.out.println(iNum1+"+"+fNum2+str1+(iNum1+fNum2));
}
}
输出显示为:
10%6=4
10/6=1
25.5%10=5.5
10*25.5%125+a=102.0
10+25.5结果是35.5
例3-6自增自减运算符的使用
publicclassDemo{
publicstaticvoidmain(String[]args){
inti=5;
System.out.println(++i);//相当于i=i+1;输出i;
inta=10;
intb=a--;//相当于两条语句,先intb=a;后a=a-1;
System.out.println("a="+a+",b="+b);
}
}
输出显示为:
6
a=9,b=10
例3-7条件运算符的使用
publicclassMaxTest{
publicstaticvoidmain(String[]args){
inta=1,b=2,temp;
doubled1=1.1,d2=-9.9,d3=96.9,m;
temp=a>b?
a:
b;//将a和b之间的较大值存给temp
System.out.println(a+"与"+b+"间的较大值是"+temp);
m=d1>d2?
d1:
d2;//将d1和d2间的较大值存给m
m=m>d3?
m:
d3;//m与d3比较出最大值,仍保存至m
System.out.println(d1+","+d2+","+d3+"间的最大值是"+m);
}
}
输出显示为:
1与2间的较大值是2
1.1,-9.9,96.9间的最大值是96.9
例3-8字符数组元素初始值及循环赋值
publicclassInitSample{
publicstaticvoidmain(String[]args){
char[]letters=newchar[26];
System.out.println("赋值前");
for(inti=0;i<26;i++){//循环输出各数组元素
System.out.print(letters[i]+"");
if((i+1)%9==0)//输出9个元素后换行
System.out.println();
}
System.out.println();
charc='A';
for(inti=0;c<='Z';c++,i++){//循环将字母A—Z依次存至数组元素
letters[i]=c;
}
System.out.println("赋值后");
for(inti=0;i<26;i++){//循环输出各数组元素
System.out.print(letters[i]+"");
if((i+1)%9==0)//输出9个元素后换行
System.out.println();
}
}
}
输出显示:
赋值前
赋值后ABCDEFGHI
JKLMNOPQR
STUVWXYZ
例3-9从命令行随意输入若干参数,反向输出所有元素。
publicclassArgsTest{
publicstaticvoidmain(String[]args){
for(inti=args.length-1;i>=0;i--)
System.out.println(args[i]);
}
}
(参数必须在菜单RunRunconfigurationsarguments,中输入)
例3-10定义整型数组初始化赋若干个整数。
输出数组长度及各元素值。
publicclassInitSample2{
publicstaticvoidmain(String[]args){
int[]arr={45,12,23,9,5,78,4,51,2,6,85,78};
System.out.println("数组s的长度为:
"+arr.length);
for(inti=0;iSystem.out.println(“第”+(i+1)+”个数组元素是:
”+arr[i]);
}
}
}
输出显示为:
数组s的长度为:
12
第1个数组元素是:
45
第2个数组元素是:
12
第3个数组元素是:
23
第4个数组元素是:
9
第5个数组元素是:
5
第6个数组元素是:
78
第7个数组元素是:
4
第8个数组元素是:
51
第9个数组元素是:
2
第10个数组元素是:
6
第11个数组元素是:
85
第12个数组元素是:
78
例3-11定义数组存放十个学生成绩,计算总分和平均分,找出最高分。
publicclassScoreTest{
publicstaticvoidmain(String[]s){
intscore[]={70,80,90,85,76,95,94,85,72,83};
intsum=0,aver,max=score[0],n=0;
for(inti=0;isum+=score[i];
if(score[i]>max){
max=score[i];//找最高分
n=i+1;//记录最高分是第几个同学
}
}
aver=sum/10;
System.out.println("总分是:
"+sum+"平均分是:
"+aver+
"最高分是第"+n+"个同学,成绩为"+max);
}
}
例3-12定义一个字符型数组,初始化赋值。
提示用户输入一个整数,根据数值找到相应位置的字符,输出该字符。
如果整数不在数组个数范围内则进行相应提示。
本例中实现接收用户输入数据的相关内容详见3.6节。
importjava.util.Scanner;//引入java.util包中的Scanner类
publicclassArrayDemo{
publicstaticvoidmain(String[]args){
//创建用来接收用户输入数据的Scanner类的对象reader
Scannerreader=newScanner(System.in);
charcharArray[]={'c','h','a','r','a','c','t','e','r'};//初始化数组
System.out.print("数组的所有元素是:
");
for(inti=0;iSystem.out.print(charArray[i]);
System.out.println();
System.out.println("您要查找第几个字符?
");
intindex=reader.nextInt();//接收用户输入的整数,保存至index
if(index>=1&&index<=charArray.length)
System.out.println("您要查找的字符是"+charArray[index-1]);
else
System.out.println("数据超出合法范围,无法进行查找。
");
}
}
例3-13冒泡排序法例程
由命令行参数给出一系列整数,使用冒泡排序法对这些整数进行冒泡排序,按从小到大顺序输出排序后的结果。
publicclassSortDemo{
publicstaticvoidmain(String[]args){
inti,j;
Stringtemp;
for(i=0;i//与后面的每个元素依次比较
for(j=0;jif(Integer.parseInt(args[j])>Integer.parseInt(args[j+1])){
temp=args[j];//交换相邻元素位置
args[j]=args[j+1];
args[j+1]=temp;
}
}
System.out.println("按从小到大排序后数组元素为:
");
for(i=0;iSystem.out.print(args[i]+"");
System.out.println();
}
}
例3-14定义学生类Student,可以存放每个学生的姓名、年龄、成绩,包含两个成员方法:
能够设置这三项属性值,能够输出这三项信息。
在主类的main方法中定义Student类的对象数组。
提示用户确定学生的个数,然后给每个学生输入三方面信息,最后集体显示在屏幕上。
本例中实现读入用户输入数据的相关内容介绍详见3.6节。
importjava.util.Scanner;//引入java.util包里的Scanner类
classStudentDemo{
publicstaticvoidmain(String[]args){
//创建用来接收用户输入数据的Scanner类的对象reader
Scannerreader=newScanner(System.in);
Studentstu[];//声明Student类类型数组stu
intn;//学生个数
System.out.println("您要输入多少同学的信息?
");
n=reader.nextInt();//接收用户输入的整数存至变量n
if(n<=0)//个数合法性判断
System.out.println("个数错误!
");
else{
stu=newStudent[n];//创建stu数组,包含n个元素
//循环创建每个数组元素对象,设置各对象的全部信息
for(inti=0;istu[i]=newStudent();//给每个数组元素创建对象
System.out.println("请输入第"+(i+1)+"个同学的姓名");
Stringname=reader.next();//读入字符串存至姓名
System.out.println("请输入第"+(i+1)+"个同学的年龄");
intage=reader.nextInt();//读入整数存至年龄
System.out.println("请输入第"+(i+1)+"个同学的成绩");
doublescore=reader.nextDouble();//读入实数存至成绩
stu[i].setItem(name,age,score);
}
for(inti=0;istu[i].printInfo();
}
}
}
//定义学生类
classStudent{
Stringname;//姓名
intage;//年龄
doublescore;//成绩
voidsetItem(Stringn,inta,doubles){//设置成员值
name=n;
age=a;
score=s;
}
voidprintInfo(){//输出各项信息
System.out.println("姓名是"+name+",年龄是"+age+",成绩是"+score);
}
}
例3-15数组的引用
publicclassArrayReference{
publicstaticvoidmain(String[]args){
inta[]={1,2,3,4,5};//初始化整型数组a
intb[];//声明整型数组b
b=a;//将数组a的引用赋值给数组b,即b也引用同样数组空间
System.out.println("数组a的首地址是"+a);
System.out.println("数组b的首地址是"+b);
inti;
System.out.print("数组a的元素有:
");
for(i=0;iSystem.out.print(a[i]+"");//输出一个元素后空格
System.out.println();//所有元素输出后换行
System.out.print("数组b的元素有:
");
for(i=0;iSystem.out.print(b[i]+"");
System.out.println();
}
}
例3-16编写程序,运行时提示用户输入一个数,输出该数的绝对值。
importjava.util.Scanner;//引入java.util包里的Scanner类
classAbsTest{
publicstaticvoidmain(String[]args){
//创建用来接收用户输入数据的Scanner类的对象reader
Scannerreader=newScanner(System.in);
System.out.println("请输入一个数");
doublenum=reader.nextDouble();//接收一个双精度数据存至变量num
if(num<0)//得到num的绝对值
num=-num;
System.out.println("该数的绝对值是"+num);
}
}
例3-17提示用户输入一个半径值,将数据读入。
再提示用户选择1为计算周长,选择2为计算面积,根据用户所选内容进行计算,输出