胜利学院Java实验512分享留住感动.docx
《胜利学院Java实验512分享留住感动.docx》由会员分享,可在线阅读,更多相关《胜利学院Java实验512分享留住感动.docx(26页珍藏版)》请在冰豆网上搜索。
胜利学院Java实验512分享留住感动
目录
(按住Ctrl+单击以快速浏览)
(按Ctrl+home以回到目录)
实验五:
继承
编程一、已有汽车类的父类Car,编写汽车类的子类SonCar
编程二、定义了父类Person,定义了子类Worker,利用super改进程序
实验六:
抽象类
利用执行类,编写一个抽象类Fruit,包含表示收获的抽象方法harvest(),结合抽象类,编写它的两个子类apple和Orange
实验七:
接口
创建武器接口,该接口包含发射武器的方法,要想有武器功能的交通工具都必须实现该接口.
实验八:
实验九:
接口的应用<未做>
一、策略模式(任选一个)
1、利用策略模式,构建一类产品生产工艺的模式案例
2、销售图书种不同折扣的算法
二、代理模式
假设有一个系统游戏,用代理模式构建代玩模块,可以有游戏基本玩法、代玩、通关三部分编写模式代码
实验十:
工具类的使用
1、去除字符串中的所以空格
2、比较Double类型两个数据的大小
4、用随机数输出0-20的偶数
5、判断输入用户的手机号的合法性
6、判断IP地址的合法性
实验十一:
图形用户界面制作
实验十二:
异常处理
编写一个简单的程序能够捕获数组越界和除数为零两种异常,并能被自定异常类捕获
**********************BEGIN**********************
*********************BOUNDS*********************
实验五:
继承编程一、已有汽车类的父类Car,编写汽车类的子类SonCar
packagepackages2;
classCar{
publicStringcolor="黑色";//颜色
publicintspeed=1;//速度
publicintlevel;//档位
publicvoidgear(intnum){//定义换挡方法
level=num;//换挡
speed=10*level*level;//变速
}
publicvoiddrive(){//定义开车方法
System.out.println("我是一辆"+color+"的轿车。
");
System.out.println("现在以时速"+speed+"公里每小时的速度行驶中。
");
System.out.println("车档位是:
"+level+"档。
");
}
}
classSonCarextendsCar{
}
publicclassShiyan5_1{
publicstaticvoidmain(String[]args){
SonCarscar=newSonCar();
scar.gear(5);
scar.drive();
}
}
编程二、定义了父类Person,定义了子类Worker,利用super改进程序
//shiyan5_2
packagepackages2;
classPerson{
publicStringname;//定义姓名属性
publicintage;//定义年龄属性
publicvoidgetInfo(){//定义getInfo()方法
System.out.println("姓名为:
"+name);//输出姓名属性
System.out.println("年龄为:
"+age);//输出年龄属性
}
}
classWorkerextendsPerson{
Stringcompany;//定义公司属性
publicWorker(){//定义构造方法
super();//调用父类的构造方法
}
publicvoidgetInfo(){//重写父类的getInfo()方法
//将工人的相关信息输出
System.out.println("姓名为:
"+name);
System.out.println("年龄为:
"+age);
System.out.println("公司为:
"+company);
}
publicstaticvoidmain(String[]args){
Workerworker=newWorker();//创建工人对象
worker.name="张三";//为对象的姓名属性赋值
worker.age=35;
pany="*科技公司";
worker.getInfo();//调用对象的getInfo()方法
}
}
*********************BOUNDS*********************
实验六:
抽象类利用执行类,编写一个抽象类Fruit,包含表示收获的抽象方法harvest(),结合抽象类,编写它的两个子类apple和Orange
//实验六
/**
*抽象方法简介
*类:
publicabstractclassName{}
*方法:
publicabstract(voidintStringetc)Name(形参);
*/
packagepackages2;
abstractclassFruit{
publicabstractvoidharvest();//抽象方法没有方法体
}
classAppleextendsFruit{
publicvoidharvest(){
System.out.println("苹果已经收获!
");
}
}
classOrangeextendsFruit{
publicvoidharvest(){
System.out.println("桔子已经收获!
");
}
}
publicclassFarm{
publicstaticvoidmain(String[]args){
System.out.println("调用Apple类的harvest()方法的结果:
");
Appleapple=newApple();//声明Apple类的一个对象apple,并为其分配内存
apple.harvest();//调用Apple类的harvest()方法
System.out.println("调用Orange类的harvest()方法的结果:
");
Orangeorange=newOrange();//声明Orange类的一个对象orange,并为其分配内存
orange.harvest();//调用Orange类的harvest()方法
}
}
*********************BOUNDS*********************
实验七:
接口创建武器接口,该接口包含发射武器的方法,要想有武器功能的交通工具都必须实现该接口.
/**
*接口:
*[接口修饰符]interface接口名称[extends父类名];
*model:
*publicinterfaceInsurable{
*publicintgetNumber();
*publicdoublegetCoverageAmount();
*publicDategetExpiryDate();
*}
*/
packagepackages2;
interfaceArms{
publicvoidgetArms();
}
classWuqiimplementsArms{
publicvoidgetArms(){
System.out.println("\n向敌人开炮!
!
!
");
}
}
publicclassShiyan7{
publicstaticvoidmain(String[]args){
Wuqiwqi=newWuqi();
wqi.getArms();
}
}
*********************BOUNDS*********************
实验八:
packagepackages2;
abstractclassA{
publicA(){
this.print();
}
publicabstractvoidprint();
}
classBextendsA{
privateintx=100;
publicB(intx){
this.x=x;
}
publicvoidprint(){
System.out.println("x="+x);
}
}
publicclassShiyan8{
publicstaticvoidmain(Stringargs[]){
Aa=newB(10);
}
}
*********************BOUNDS*********************
实验九:
接口的应用一、策略模式(任选一个)1、利用策略模式,构建一类产品生产工艺的模式案例2、销售图书种不同折扣的算法
packageshiyan09;
//接口
publicinterfaceDiscount{
voiddiscount();
}
publicclassBook1implementsDiscount{
publicvoiddiscount(){
System.out.println("这一种图书打折模式");
/**
*打折方案
*/
}
}
publicclassBook2implementsDiscount{
publicvoiddiscount(){
System.out.println("这一种图书打折模式");
/**
*打折方案
*/
}
}二、代理模式假设有一个系统游戏,用代理模式构建代玩模块,可以有游戏基本玩法、代玩、通关三部分编写模式代码
*********************BOUNDS*********************
实验十:
工具类的使用1、去除字符串中的所以空格
/**去除字符串中的所有的的空格
*
*String.trim()去掉首尾空格
*String.replace()去掉所有空格,包括首尾,中间
*/
packageshiyan10;
importjava.util.Scanner;
publicclassStringReplace{
publicstaticvoidmain(String[]args){
Scannerscan=newScanner(System.in);
System.out.println("请随便输入一串字符串");
Stringstr=scan.nextLine();
Stringstr2=str.replaceAll("","");
System.out.println(str2);
}
}
2、比较Double类型两个数据的大小
//比较Double类型两个数据大小
packageshiyan10;
importjava.util.Scanner;
publicclassComDouble{
publicstaticvoidmain(String[]args){
System.out.println("请输入两个数");
Scannerscan=newScanner(System.in);
doublea=scan.nextDouble();
doubleb=scan.nextDouble();
if(a-b>0){
System.out.println("较大的数是:
"+a);
}elseif(a-b<0){
System.out.println("较大的数是:
"+b);
}else{
System.out.println("两个数相等");
}
}
}
3、用Math.sqrt()方法输出1-100的素数
//用Math.sqrt()方法输出1-100的素数
/**检查一个正整数N是否为素数,最简单的方法就是试除法,
*将该数N用小于等于根号N的所有素数去试除,若均无法
*整除,则N为素数,参见素数判定法则
*
*(int)是强制类型转换,也就是把后面Math.sqrt(i)得到的
*结果转换成整型。
而且是强制取整的方法,不会四舍五入
*/
packageshiyan10;
importjava.lang.Math;
publicclassSushu{
publicstaticvoidmain(String[]args){
intj;
System.out.print("2");
for(inti=3;i<=100;i+=2){
intk=(int)Math.sqrt(i)+1;
for(j=2;j<=k;j++){
if(i%j==0)
break;
if(j>=k)
System.out.print(i+"");
}
}
}
}
4、用随机数输出0-20的偶数
//用随机数输出0-20的偶数
packageshiyan10;
publicclassSuijishu{
publicstaticvoidmain(String[]args){
int[]a=newint[10];
inti;
for(i=0;i<10;i++){
a[i]=(int)(Math.random()*20+0);
}
for(i=0;i<=a.length;i++){
if(a[i]%2==0){
System.out.println(a[i]);
}
}
}
}
5、判断输入用户的手机号的合法性
packageshiyan10;
importjava.util.Scanner;
publicclassShoujihao{
publicstaticvoidmain(String[]args){
Scannerscan=newScanner(System.in);
System.out.println("请随便输入一个手机号");
Stringstr=scan.nextLine();
booleanpan=str.matches("^(13|15|18)\\d{9}$");
//^行或字符的开始$结束()分组\转义符
//\d数字字符使用\d+表示一个数字{n}进行n次匹配
if(pan==true){System.out.println("您输入的手机号合法");}
if(pan==false){System.out.println("您输入的手机号不合法");}
}
}
6、判断IP地址的合法性
packageipTest;
importjava.util.*;
classinput{
Scannerscan=newScanner(System.in);
Strings=scan.nextLine();
intflag;
//判断输入的IP地址是否合法,如果不合法重新输入,flag=1为不合法
input(){
flag=0;
char[]a=s.toCharArray();
if(s.length()>15){
System.out.println("地址总长度超过15");
flag=1;
}
//判断是否存在非法字符,分隔符只能为3个
for(inti=0;iif((a[i]<'0'||a[i]>'9')&&(a[i]!
='.')){
System.out.println("地址中包含非法字符");
flag=1;
break;
}
}
intdian=0;
for(inti=0;iif(a[i]=='.')
dian++;
}
if(dian!
=3){
System.out.println("地址中分隔符只能为3个");
flag=1;
}
//判断是否出现连续的分隔符
for(inti=0;iif(a[i]=='.'&&a[i+1]=='.'){
System.out.println("地址中不能出现连续的分隔符");
flag=1;
break;
}
}
//判断最后为是否为分隔符
if(a[s.length()-1]=='.')
System.out.println("地址最后位不能为分隔符");
//判断首位是否为分隔符
if(a[0]=='.'){
System.out.println("首位地址不能为分隔符");
flag=1;
}
String[]sss=s.split("\\.");
for(into=0;ofor(intp=0;pintnum=Integer.parseInt(sss[o]);
if(num>255||num<0){
System.out.println("ERROR!
地址不在0~255之间");
flag=1;
break;
}
}
}
}
}
publicclassIpTest{
publicstaticvoidmain(String[]args){
System.out.println("请输入IP地址");
inputIP=newinput();
if(IP.flag==1){
System.out.println("输入IP地址有误,请重新输入");
inputxin_IP=newinput();
IP.s=xin_IP.s;
if(xin_IP.flag==0)
System.out.println("输入的IP地址正确!
!
!
");
}else{
System.out.println("输入的IP地址正确!
!
!
");
}
}
}
*********************BOUNDS*********************
实验十一:
图形用户界面制作
packageshiyan11;
importjava.awt.*;
importjavax.swing.*;
publicclassFrameextendsJFrame{
publicFrame(){
super("关于学生管理系统");
PanelpLeft,pMid,pRight;//面板
JLabellname,lpic,lmid,
l1,l2,l3,l4;//标签
Imageimg;//图片
ImageIconicon;
this.getContentPane().setLayout(newFlowLayout());//Container
pLeft=newPanel();
pMid=newPanel();
pRight=newPanel();
pLeft.setLayout(newGridLayout(2,1));
pMid.setLayout(newGridLayout(1,2));
pRight.setLayout(newGridLayout(4,1));
//pic
img=Toolkit.getDefaultToolkit().getImage("J:
\\JavaWorkspace\\java\\src\\shiyan11\\splane.png");//读取图片
icon=newImageIcon(img);//生成图标
//leftLabel
lpic=newJLabel();
lpic.setIcon(icon);
lname=newJLabel("学生管理系统");
lmid=newJLabel("");
//rightLabel
l1=newJLabel("胜利学院学生管理系统");
l2=newJLabel("版本1.1");
l3=newJLabel("适用于任何系统");
l4=newJLabel("版权所有:
长城科技有限公司");
pLeft.add(lpic);
pLeft.add(lname);
pMid.add(lmid);
pRight.add(l1);
pRight.add(l2);
pRight.add(l3);
pRight.add(l4);
this.getContentPane().add(pLeft);
this.getContentPane().add(pMid);
this.getContentPane().add(pRight);
}