目录
1.设计一个包含多个构造方法的类,并分别用这些构造方法实例化对象。
2.编写一个类Calculate1,实现加、减两种运算,然后,编写另一个派生类Calculate2,实现乘、除两种运算。
4.编写一个类,其中包含一个排序的方法sort(),当传入的是一串整数,就按照从小到大的顺序输出,如果传入的是一个字符串,就将字符串反序输出。
5.设计一个立方体类Box,它能计算并输出立方体的体积和表面积。
6.编写一个程序,设计一个点类Point,实例化两个点之后,能调用其方法求两个点之间的距离。
1.设计一个包含多个构造方法的类,并分别用这些构造方法实例化对象。
classLike {
publicStringname;
publicStringage;
publicStringhobby;
publicLike() {
}
publicLike(Stringname, Stringage, Stringhobby) {
this.name=name;
this.age=age;
this.hobby=hobby;
}
//说话
public voidsay() {
System.out.println(name+"说:沸羊羊你个臭**");
}
public voidsaying() {
System.out.println(name+"说:美羊羊你TMD真双标");
}
public voidshow() {
System.out.println("我可是"+name+age+hobby);
}
}
public classNO1 {
public static voidmain(String[]args) {
Likelandawang=newLike("懒大王,","你什么身份,我什么地位",",你在狗叫什么!");
Likelaozi=newLike("羊村村霸,","村长都得给我递烟!","少TM在那逼逼赖赖!");
landawang.show();
laozi.show();
landawang.say();
laozi.saying();
}
}

2.编写一个类Calculate1,实现加、减两种运算,然后,编写另一个派生类Calculate2,实现乘、除两种运算。
public classNO2 {
public static voidmain(String[]args) {
Calculate1c1=newCalculate1();
Calculate2c2=newCalculate2();
System.out.println("c1的加法:"+c1.plus(3, 2));
System.out.println("c1的减法:"+c1.subtraction(5, 3));
System.out.println("c2的乘法:"+c2.multiply(4, 4));
System.out.println("c2的除法:"+c2.remove(6, 3));
}
}
classCalculate1 {
public doubleplus(double x,double y) {
return x+y;
}
public doublesubtraction(double x,double y) {
return x-y;
}
}
classCalculate2extendsCalculate1 {
public doublemultiply(double x,double y) {
return x*y;
}
public doubleremove(double x,double y) {
return x/y;
}
}

3.建立三个类:居民、成人、官员。居民包含身份证号、姓名、出生日期,而成人继承自居民,多包含学历、职业两项数据;官员则继承自成人,多包含党派、职务两项数据。要求每个类的字段都以属性的方式对外提供数据输入输出的功能。
classPerson {
publicStringno;
publicStringname;
publicStringbirth;
publicPerson(Stringno, Stringname, Stringbirth) {
LO(no);
LOV(name);
LOVE(birth);
}
public voidLO(Stringno) {
System.out.println("身份证号:"+no);
this.no=no;
}
public voidLOV(Stringname) {
System.out.println("姓名:"+name);
this.name=name;
}
public voidLOVE(Stringbirth) {
System.out.println("出生日期:"+birth);
this.birth=birth;
}
}
classAdultextendsPerson {
publicStringstudy;
publicStringjob;
publicAdult(Stringno, Stringname, Stringbirth, Stringstudy, Stringjob) {
super(no,name,birth);
ST(study);
JO(job);
}
public voidST(Stringstudy) {
System.out.println("学历:"+study);
this.study=study;
}
public voidJO(Stringjob) {
System.out.println("职业:"+job);
this.job=job;
}
}
classOfficialextendsAdult {
publicStringpolitical;
publicStringpost;
publicOfficial(Stringno, Stringname, Stringbirth, Stringstudy, Stringjob, Stringpolitical, Stringpost) {
super(no,name,birth,study,job);
Pol(political);
Pos(post);
}
public voidPol(StringPolitical) {
System.out.println("党派:"+Political);
this.political=Political;
}
public voidPos(Stringpost) {
System.out.println("职务:"+post);
this.post=post;
}
}
public classNO3 {
public static voidmain(String[]args) {
Personm=newPerson("4************0","美羊羊","2000-02-02");
System.out.println();
Adultf=newAdult("4************1","沸羊羊","2001-03-08","小学羊","添购");
System.out.println();
Officiall=newOfficial("4************2","懒大王","2002-08-08","研究羊","羊","羊党","羊村村霸");
}
}

4.编写一个类,其中包含一个排序的方法sort(),当传入的是一串整数,就按照从小到大的顺序输出,如果传入的是一个字符串,就将字符串反序输出。
importjava.util.Arrays;
public classNO4 {
public static voidmain(String[]args) {
int[]obj= { 3, 6, 1, 10, 8 };
obj= sort(obj);
//随便建一个字符的数组
String[]objs= {"b","a","c","h","d"};
objs= sort(objs);
//打印
System.out.println("字符输出\t");
for(int i= 0;i<objs.length;i++) {
System.out.print(objs[i] +" ");
}
System.out.println("\t");
System.out.println("整数输出\t");
for(int i= 0;i<obj.length;i++) {
System.out.print(obj[i] +" ");
}
}
//用Arrays.sort()方法排序,默认从小到大
public static int[] sort(int[]nums) {
Arrays.sort(nums);
return nums;
}
//字符串排序,用冒泡排序,通过compareTo(str)方法进行比较,该方法是根据字典表的顺序进行比较,如果参数大于本值,则返回-1,如果相等返回0,大于返回1
public staticString[] sort(String[]strs) {
for(int i= 0;i<strs.length;i++) {
for(int j= 0;j<strs.length-i- 1;j++) {
if(strs[j].compareTo(strs[j+ 1]) < 1) {
Stringtemp=strs[j];
strs[j] =strs[j+ 1];
strs[j+ 1] =temp;
}
}
}
return strs;
}
}

5.设计一个立方体类Box,它能计算并输出立方体的体积和表面积。
importjava.util.Scanner;
classBox {
private int length;
private int width;
private int heigth;
voidsetBox(int l,int w,int h) {
length=l;
width=w;
heigth=h;
}
intvolume() {
System.out.println("立方体的体积是;"+length*width*heigth);
return0;
}
intsuperficial() {
System.out.println("立方体的表面积是;"+ 2 * (length*width+width*heigth+length*heigth));
return0;
}
}
public classNO5 {
public static voidmain(String[]args) {
Boxb=newBox();
System.out.println("下面将输入你所要计算的立方体体积和表面积");
System.out.println("下面将输入你所要计算的立方体长");
Scannersc=newScanner(System.in);
int i=sc.nextInt();
System.out.println("下面将输入你所要计算的立方体宽");
int j=sc.nextInt();
System.out.println("下面将输入你所要计算的立方体高");
int k=sc.nextInt();
b.setBox(i,j,k);
b.volume();
b.superficial();
}
}

6.编写一个程序,设计一个点类Point,实例化两个点之后,能调用其方法求两个点之间的距离。
class Point {
private double x;
private double y;
public Point(double x, double y) {
this.x = x;
this.y = y;
}
/*
*计算两点之间的距离 公式:根号下(x1-x2)^2+(y1-y2)^2
*/
public static void distance(Point p1, Point p2) {
double sum = Math.sqrt(Math.pow(p1.x - p2.x, 2) + Math.pow(p1.y - p2.y, 2));
System.out.println("两点间的距离为\t");
System.out.println(sum);
}
}
public class NO6 {
public static void main(String[] args) {
Point.distance(new Point(0, 0), new Point(3, 4));
//原点到(3,4)的距离
}
}

7、 写一个学生类,包括属性: 学号,班号,姓名,年龄,性别;要求用无参构造,方法获得:学号,班号,姓名,年龄(只能小于100岁,大于1,否则重新输入) ,性别(只能男或者女,否则重新输入),最后在主方法输出你对一个学生对象赋值的信息。
importjava.util.Scanner;
public classNO7 {
public static classStudent {//以public class开头的内部类为动态的,而主程序以public static class开头
//在java中,类中的静态方法不能直接调用动态方法,只有将某个内部类修饰为静态类,能够在静态类中调用该类的成员变量与成员方法。即此处应改为public
// static class Student
int num;//学号
int classnum;//班号
Stringname;//姓名
int age;//年龄
Stringsex;//性别
publicStudent()//空参构造
{
super();
}
publicStudent(int num,int classnum, Stringname,int age, Stringsex)//有参构造
{
this.num=num;
this.classnum=classnum;
this.name=name;
this.age=age;
this.sex=sex;
}
//各属性的getter和setter方法
public intgetNum() {
return num;
}
public voidsetNum(int num) {
this.num=num;
}
public intgetClassnum() {
return classnum;
}
public voidsetClassnum(int classnum) {
this.classnum=classnum;
}
publicString getName() {
return name;
}
public voidsetName(Stringname) {
this.name=name;
}
public intgetAge() {
return age;
}
public voidsetAge(int age) {
this.age=age;
}
publicString getSex() {
return sex;
}
public voidsetSex(Stringsex) {
this.sex=sex;
}
//数组中顺序显示所有学生信息
voidPrint(Student[]array)// Student[] array为对象数组,其在使用时必须逐一实例化
{
for(int i= 0;i<array.length;i++) {
System.out.println("学号:"+array[i].num+" 班号:"+array[i].classnum+" 姓名:"+array[i].name
+" 年龄:"+array[i].age+" 性别:"+array[i].sex);
}
}
//通过学生学号查找学生信息
voidFind(int num, Student[]array)//参数为num。和学生类数组array
{
for(int i= 0;i<array.length;i++) {
if(num==array[i].getNum()) {
System.out.println("学号:"+array[i].num+" 班号:"+array[i].classnum+" 姓名:"+array[i].name
+" 年龄:"+array[i].age+" 性别:"+array[i].sex);
}
}
}
public static voidmain(String[]args) {
//法一:手动输入学生信息
Scannersc=newScanner(System.in);
System.out.println("请输入学生人数:");
int x=sc.nextInt();
Student[]array=newStudent[x];
for(int i= 0;i<array.length;i++) {
array[i] =newStudent();//若在编写一个java程序时没有添加无参构造方法,编译器会自动添加无参构造方法;
//但是若编写时添加了有参构造方法而未添加无参构造方法,则编译器只认有参构造方法而不会默认添加无参构造方法,需要注意的是如果需要使用无参构造方法,一定要在类中里面添加
System.out.println("请输入第"+ (i+ 1) +"个学生的学号");
int num=sc.nextInt();//输入学号
array[i].setNum(num);
System.out.println("请输入第"+ (i+ 1) +"个学生的班号");
int classnum=sc.nextInt();//输入班号
array[i].setClassnum(classnum);
System.out.println("请输入第"+ (i+ 1) +"个学生的姓名");
Stringname=sc.next();//输入姓名
array[i].setName(name);
System.out.println("请输入第"+ (i+ 1) +"个学生的年龄");
int age=sc.nextInt();//输入年龄
if(age< 100 &&age> 1)
array[i].setAge(age);
else{
System.out.println("请重新输入");
continue;
}
System.out.println("请输入第"+ (i+ 1) +"个学生的性别");
Stringsex=sc.next();//输入性别
if(sex!="男"||sex!="女")
array[i].setSex(sex);
else{
System.out.println("请重新输入");
continue;
}
}
System.out.println("所有学生初始信息如下:");
array[0].Print(array);
System.out.println("----------------------------------");
System.out.println("学号为201801学生信息如下:");
array[0].Find(201801,array);
System.out.println("----------------------------------");
}
}
}

8、设计一个BankAccount类,实现银行某账号的资金往来账目管理,包括建账号、存入、取出等。BankAccount类包括,账号(BankAccountId)、开户日期Date(日期),Money(金额),Rest(余额)。另有一个构造方法和三个成员方法Bankin()(处理存入账),Bankout()处理取出账)和和一个负责生成账号的自动增长的方法。
importjava.util.Scanner;
public classdenglu2 {
public static voidmain(String[]args){
Scannersc=newScanner(System.in);
geren1[]user=newgeren1[10];
//System.out.println(user[1]);
BankAccount(sc,user);
}
public static voidBankAccount(Scannersc,geren1[]user){
while(true)
{
System.out.println("===银行系统===");
System.out.println();
System.out.println("1,登录\t\t2,注册\t\t3,退出");
int xuanze=sc.nextInt();
if(xuanze== 1)
{
//print(user);
denglu1(sc,user);
}else if(xuanze== 2){
BankAccountId(sc,user);
//print(user);
}else if(xuanze== 3){
break;
}
else{System.out.println("输入有误!");}
}
}
public static voidBankAccountId(Scannersc, geren1[]user){
System.out.println("====注 册====");
for(int i=0;i<user.length;i++)
{
if(user[i] ==null)
{
System.out.println("请输入注册账号:");
//user[i][0] = sc.next();
Stringzhanghao=sc.next();
System.out.println("请输入注册密码:");
//user[i][1] = sc.next();
Stringmima=sc.next();
System.out.println("请输入您的真实姓名:");
Stringname=sc.next();
System.out.println("请输入手机号:");
//zijin[i][2] = sc.nextInt();
Stringphone=sc.next();
geren1gr=newgeren1(zhanghao,mima,name,phone,i);
user[i] =gr;
System.out.println("注册成功");
return;
}
}
}
public static voiddenglu1(Scannersc,geren1[]user){
System.out.println("====登 录=====");
System.out.println("请输入账号:");
Stringzh=sc.next();
System.out.println("请输入密码:");
Stringmm=sc.next();
for(int i= 0;i<user.length;i++){
//System.out.println(user[i]);
if(user[i] !=null){
geren1gr=user[i];
//System.out.println(gr.getZijin());
if(zh.equals(gr.getZhanghao()) &&mm.equals(gr.getMima()))
{
System.out.println("登录成功!");
grjiemian(sc,user,gr);
return;
}
}
}
System.out.println("无此账号或密码错误!");
}
public static voidgrjiemian(Scannersc,geren1[]user,geren1gr){
while(true){
System.out.println("====个人页面=====");
System.out.println("请选择您要办理的业务:");
System.out.println("1,存款\t\t\t2,取款");
System.out.println("3,查询余额\t\t4,转账");
System.out.println("5,查询个人信息\t6,退出登录");
int xuanze=sc.nextInt();
if(xuanze== 1){
System.out.println("请输入存款金额:");
gr.setZijin(gr.getZijin()+sc.nextInt());
System.out.println("存款成功,当前余额:"+gr.getZijin()+"元");
}else if(xuanze== 2){
System.out.println("请输入取款金额:");
int qk=sc.nextInt();
if(qk>gr.getZijin()){
System.out.println("余额不足。。。");
}else{
gr.setZijin(gr.getZijin()-qk);
System.out.println("取款成功,当前余额:"+gr.getZijin()+"元");
}
}else if(xuanze== 3){
System.out.println("当前余额:"+gr.getZijin()+"元");
}
else if(xuanze== 4){
System.out.println("请输入转账账号:");
Stringzh=sc.next();
System.out.println("请输入转账金额:");
int jine=sc.nextInt();
for(int zhao= 0;zhao<user.length;zhao++){
if(user[zhao] !=null){
geren1gr1=user[zhao];
if(zh.equals(gr1.getZhanghao())){
gr1.setZijin(gr1.getZijin()+jine);
gr.setZijin(gr.getZijin() -jine);
}
}
}
}
else if(xuanze== 5){
gr.print();
}
else if(xuanze== 6){
return;
}
}
}
}

9、 编写一个程序,已有若干学生数据,包括学号、姓名、成绩,要求输出这些学生数据并计算平均分。思路:设计一个学生类Stud,除了包括no(学号)、name(姓名)、和deg(成绩)数据成员外。有两个静态变量sum和num,分别存放总分和人数,另有一个构造方法、一个普通成员方法disp()和一个静态成员方法avg(),它用于计算平均分。
importjava.util.Scanner;
public classStudent {
int no;
Stringname;
double score;
static double sum;
static int num;
publicStudent() {
}
public voiddisp() {
Scannersc=newScanner(System.in);
System.out.println("请输入存放同学的位数为*人");
num=sc.nextInt();
System.out.println("请输入学号");
no=sc.nextInt();
System.out.println("请输入名字");
name=sc.next();
System.out.println("请输入成绩");
score=sc.nextDouble();
sum=sum+score;
}
static doubleave() {return sum/num;}
public voidshowInto() {
System.out.println("该同学学号为"+no);
System.out.println("该同学名字为"+name);
System.out.println("该同学成绩为"+score);
System.out.println("截至该同学目前平均成绩为"+ave());
}
}
\\
public classStud {
public static voidmain(String[]args) {
System.out.println("请存放三个学生的信息");
Studentone=newStudent();
Studenttwo=newStudent();
Studentthree=newStudent();
one.disp();
one.showInto();
two.disp();
two.showInto();
three.disp();
three.showInto();
}
}

10.编写一个程序,统计学生成绩,其功能包括输入学生的姓名和成绩,按成绩从高到低排列打印输出,对前70%的学生定为合格(PASS),而后30%的学生定为不合格(FAIL)。思路: 设计一个类student,包含学生的姓名和成绩等数据。设计一个类Compute: sort()、disp(),它们分别用于按成绩排序和输出数据。
student类
public classStudent {
Stringname;
double deg;
publicStudent(Stringname,double deg) {
this.name=name;
this.deg=deg;
}
}
compute类
public classCompute {
public voidsort(Student []students){
for(int i= 0;i<students.length;i++){
for(int j=i;j<students.length;j++){
if(students[i].deg<students[j].deg){
Studenttemp=students[i];
students[i] =students[j];
students[j] =temp;
}
}
}
}
public voiddisp(Student[]students){
sort(students);
for(int i= 0;i<students.length;i++){
if(i<=students.length*0.7-1){
System.out.println("姓名:"+students[i].name+" 成绩:"+students[i].deg+" PASS");
}else{
System.out.println("姓名:"+students[i].name+" 成绩:"+students[i].deg+" FAIL");
}
}
}
}
Demo类
public classDemo {
public static voidmain(String[]args) {
Student[]s=newStudent[5];
s[0] =newStudent("四浪",79);
s[1] =newStudent("三根",88);
s[2] =newStudent("二狗",56);
s[3] =newStudent("一休",75);
s[4] =newStudent("零零",65);
Computecompute=newCompute();
compute.disp(s);
}
}
