【安博培训笔记】Java 基础_下课作业1_20130920

1)设计显示各种水果的定购详情的类,详情包括:名称、数量、价格

测试数据:"苹果", 10, 20 ; "芒果", 18, 56 ;  "桔子", 25, 75

package com.ambow.java.Test1;

public class T1 {
//	1)设计显示各种水果的定购详情的类,详情包括:名称、数量、价格
//	测试数据:"苹果", 10, 20 ; "芒果", 18, 56 ;  "桔子", 25, 75
	private String name;
	private double num;
	private double price;
	public T1(String name, double num, double price) {
		super();
		this.name = name;
		this.num = num;
		this.price = price;
	}
	/**
	 * @return the name
	 */
	public String getName() {
		return name;
	}
	/**
	 * @param name the name to set
	 */
	public void setName(String name) {
		this.name = name;
	}
	/**
	 * @return the num
	 */
	public double getNum() {
		return num;
	}
	/**
	 * @param num the num to set
	 */
	public void setNum(double num) {
		this.num = num;
	}
	/**
	 * @return the price
	 */
	public double getPrice() {
		return price;
	}
	/**
	 * @param price the price to set
	 */
	public void setPrice(double price) {
		this.price = price;
	}
	
	public void display() {
		System.out.println(getName()+","+getNum()+","+getPrice());
	}
	public static void main(String[] args) {
		T1 t1 = new T1("apple", 10, 10);
		t1.display();
		
	}

}


2)设计一个类用于得出三个不同盒子的体积。
测试数据:2, 3, 4 ;1, 5, 6 ;3, 8, 2
package com.ambow.java.Test1;

public class T2 {
//	2)设计一个类用于得出三个不同盒子的体积。
//	测试数据:2, 3, 4 ;1, 5, 6 ;3, 8, 2
	private double a;
	private double b;
	private double c;
	public T2(double a, double b, double c) {
		super();
		this.a = a;
		this.b = b;
		this.c = c;
	}
	/**
	 * @return the a
	 */
	public double getA() {
		return a;
	}
	/**
	 * @param a the a to set
	 */
	public void setA(double a) {
		this.a = a;
	}
	/**
	 * @return the b
	 */
	public double getB() {
		return b;
	}
	/**
	 * @param b the b to set
	 */
	public void setB(double b) {
		this.b = b;
	}
	/**
	 * @return the c
	 */
	public double getC() {
		return c;
	}
	/**
	 * @param c the c to set
	 */
	public void setC(double c) {
		this.c = c;
	}
	
	public void display() {
		System.out.println(getA()+" "+getB()+" "+getC()+" "+getA()*getB()*getC());
	}
	
	public static void main(String[] args) {
		T2 t2 = new T2(2, 3, 4);
		t2.display();
	}

}



3)设计一个Tools类提供重载方法println()和println(String info),让其接收不同的数据并能打印字符串,数字,布尔值和换行打印。

package com.ambow.java.Test1;

public class T3 {
//	3)设计一个Tools类提供重载方法println()和println(String info),
//	让其接收不同的数据并能打印字符串,数字,布尔值和换行打印。
	public void println(int a) {
		System.out.println("int = "+a);
	}
	public void println(String info) {
		System.out.println("string = info");
	}
	public static void main(String[] args) {
		T3 t3 = new T3();
		t3.println(3);
		t3.println("相聚离开 都有时候");
	}
}


4)设计用于将华氏温度转换为摄氏温度的类.
提示:
华氏温度转换为摄氏温度.公式  摄氏=(华氏-32)*5/9

摄氏温度转换为华氏温度.公式  华氏=摄氏*9/5+32

package com.ambow.java.Test1;

public class T4 {
//	4)设计用于将华氏温度转换为摄氏温度的类.
//	提示:
//	华氏温度转换为摄氏温度.公式  摄氏=(华氏-32)*5/9
//	摄氏温度转换为华氏温度.公式  华氏=摄氏*9/5+32
	private double huashiwendu;
	private double sheshiwendu;



public T4(double huashiwendu) {
		super();
		this.huashiwendu = huashiwendu;
	}

public void zhuanhuansheshiwendu() {
	sheshiwendu = (huashiwendu-32)*5/9;
	System.out.println(sheshiwendu);
}


public static void main(String[] args) {
	T4 t4 = new T4(1);
	t4.zhuanhuansheshiwendu();
}



/**
 * @return the huashiwendu
 */
public double getHuashiwendu() {
	return huashiwendu;
}



/**
 * @param huashiwendu the huashiwendu to set
 */
public void setHuashiwendu(double huashiwendu) {
	this.huashiwendu = huashiwendu;
}

}


5)设计一个测试

package com.ambow.java.Test1;

public class T5 {
	public static void main(String[] args) {
		T4 t5 = new T4(1);
		t5.zhuanhuansheshiwendu();
		t5.setHuashiwendu(2);
		t5.zhuanhuansheshiwendu();
		
	}

}

类,仅有一个main方法,然后在main中设定一个华氏温度,然后调用上题定义的方法转换成摄氏温度,最后使用6中的Tools类的print完成打印输出


6).写一个名叫Person的类表示人类,数据域为姓名name、性别gender、年龄age,name是String类型、gender是boolean类型(true表示男性,false表示女性)、age是int类型;人的行为有行走walk、吃eat。要求如下:
a) 实现walk和eat方法,分别打印“XXX在行走”,“XXX在吃东西”;XXX是具体人名
b) 提供main方法,创造两个人类的实例:Lucy,女,23岁;Jame,男,25岁
c) 在main方法中分别调用两个人类实例的walk和eat方法,观察打印结果

package com.ambow.java.Test1;

public class T6 {
	/**
	 * 6).写一个名叫Person的类表示人类,
	 * 数据域为姓名name、性别gender、年龄age,name是String类型、
	 * gender是boolean类型(true表示男性,false表示女性)、age是int类型;
	 * 人的行为有行走walk、吃eat。要求如下: 
	 * a)实现walk和eat方法,分别打印“XXX在行走”,“XXX在吃东西”;XXX是具体人名 
	 * b)提供main方法,创造两个人类的实例:Lucy,女,23岁;Jame,男,25岁 
	 * c)在main方法中分别调用两个人类实例的walk和eat方法,观察打印结果
	 */
	  private String name;
	  private boolean gender;
	  private int age;
	public T6(String name, boolean gender, int age) {
		super();
		this.name = name;
		this.gender = gender;
		this.age = age;
	}
	/**
	 * @return the name
	 */
	public String getName() {
		return name;
	}
	/**
	 * @param name the name to set
	 */
	public void setName(String name) {
		this.name = name;
	}
	/**
	 * @return the gender
	 */
	public boolean isGender() {
		return gender;
	}
	/**
	 * @param gender the gender to set
	 */
	public void setGender(boolean gender) {
		this.gender = gender;
	}
	/**
	 * @return the age
	 */
	public int getAge() {
		return age;
	}
	/**
	 * @param age the age to set
	 */
	public void setAge(int age) {
		this.age = age;
	}
	  
	public void walk() {
		System.out.println(getName()+"在行走");
	}
	public void eat() {
		System.out.println(getName()+"在吃东西");
	}
	//提供main方法,创造两个人类的实例:Lucy,女,23岁;Jame,男,25岁
	public static void main(String[] args) {
		T6 t6 = new T6("Lucy", false, 23);
		t6.walk();
		t6.eat();
		t6.setName("Jame");
		t6.setGender(true);
		t6.setAge(25);
		t6.walk();
		t6.eat();
	}

}


7).代码阅读:给定如下Java代码,编译运行后,输出结果是什么?并解释原因。
class Base {    
  public Base() {    
       System.out.println("Base");    
  }    
}    
class Child extends Base{    
   public Child() {    
       System.out.println("Child");    
   }    
public class Sample {    
   public static void main(String[] args) {    
      Child c = new Child();    
   }    
}

//先打印父类的 “Base”, 再打印子类的“Child”,子类继承父类的构造方法


8). 代码改错:请指出如下Java代码中存在的错误,并解释原因。
class Base {    
   public void method() {    
   }    
}    
class Child extends Base{    
   public int method() {    
   }    
   private void method() {    
   }    
   public void method(String s) {    
   }    

}

	//子类不能重载父类的方法,只能重写或覆盖、子类中父类的同名方法也不可以私有。


9). 代码改错:请指出如下Java代码中存在的错误,并改正
public class Sample {    
   public static void main(String[] args) {    
       Child c = new Child();    
   }    
}    
class Base extends Object{    
   private String name;    
   public Base() {    
       name = "Base";    
   }    
}    
class Child extends Base{    
    public Child() {    
       super("Child");    
    }    
}
//	super("Child");  出错,添加父类的含参构造方法
//	public Base(String name) {
//		name = "Base";
//	}



10). 代码改错:请指出如下Java代码中存在的错误,并改正。
class Teacher {    
  public void giveLesson() {    
      System.out.println("知识点讲解");    
      System.out.println("总结提问");    
  }    
}    
class DBTeacher extends Teacher {    
  public void giveLesson() {    
      System.out.println("启动 SqlServer");    
      super.giveLesson();    
  }    
  public void sayHi() {    
      System.out.printl ("Hi");    
  }    
}    
public class Test {    
  public static void main(String[] args) {    
      Teacher t = new DBrreacher ();    
      t.sayHi();    
      t.giveLesson();    
}
//	DBTeacher 向上转型  Teacher,Teacher 的对象不能调用 DBTeacher 的方法,应该为:(代码:Test.java)
//	DBTeacher t = new DBTeacher();



11).在员工管理系统中,有普通员工,经理,董事三种角色,公司所有的员工都有员工Id,员工名字,员工基本薪水(2000),请假天数;现初步定Employee类为父类,Manager子类、Director(董事)子类,它们的区别是计算工资方式不一样。
具体工资计算办法:
A、工资扣除部分:如果请假小于5天,基本工资发75%,大于5天,基本工资发50%  ;
B、经理的工资=基本工资+住房补贴(基本工资的0.2)+交通补贴(基本工资的0.5)+医疗补贴(500) ;
C、董事的工资=基本工资+住房补贴(基本工资的0.08)+交通补贴(基本工资的0.3)+医疗补贴(2000)+娱乐补贴(3000) ;
现完成此系统的设计。

package com.ambow.java.Test1;

public class Employee {
	private  int id;
	private String name;
	private double sale;
	private int qingjia;
	public Employee(int id, String name, double sale, int qingjia) {
		super();
		this.id = id;
		this.name = name;
		this.sale = sale;
		this.qingjia = qingjia;
	}
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public double getSale() {
		return sale;
	}
	public void setSale(double sale) {
		this.sale = sale;
	}
	public int getQingjia() {
		return qingjia;
	}
	public void setQingjia(int qingjia) {
		this.qingjia = qingjia;
	}
	
	public void sale() {
		if(getQingjia()==0){
			System.out.println("工资为:"+getSale());
		}else if(getQingjia()>=0 && getQingjia()<=5){
			System.out.println("工资为:"+getSale()*0.75);
		}else if(getQingjia()>5 && getQingjia()<=31){
			System.out.println("工资为:"+getSale()*0.5);
		}else{
			System.out.println("错误");
		}
	}
	

}

package com.ambow.java.Test1;

public class Manager extends Employee {

	public Manager(int id, String name, double sale, int qingjia) {
		super(id, name, sale, qingjia);
		// TODO Auto-generated constructor stub
	}
	public void sale() {
		System.out.println("工资为:"+getSale()+getSale()*0.2+getSale()*0.5+500);
	}

}

package com.ambow.java.Test1;

public class Director extends Employee{

	public Director(int id, String name, double sale, int qingjia) {
		super(id, name, sale, qingjia);
		// TODO Auto-generated constructor stub
	}
	
	public void sale() {
		System.out.println("工资为:"+getSale()+getSale()*0.08+getSale()*0.3+2000+3000);
	}

}















  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
这个错误通常是由于数据库中的不同字符集或校对规则导致的。这种情况下,你可以尝试以下解决方案之一: 1. 指定相同的字符集和校对规则:确保所有涉及比较的列具有相同的字符集和校对规则。可以使用`COLLATE`关键字在查询中指定所需的校对规则。例如: ```sql SELECT * FROM table WHERE column COLLATE utf8mb4_general_ci = 'value'; ``` 这里,`utf8mb4_general_ci`是你想要使用的校对规则。 2. 修改表的默认字符集和校对规则:如果你经常遇到这个问题,并且希望统一字符集和校对规则,可以考虑修改表的默认字符集和校对规则。例如,将表的默认字符集修改为`utf8mb4`,校对规则修改为`utf8mb4_general_ci`。 ```sql ALTER TABLE table CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; ``` 请注意,在执行此操作之前,请确保备份了数据。 3. 转换数据:如果只有少数几个数据行导致了此错误,你可以尝试将这些数据行中的字符集转换为与其他数据行一致。例如,可以使用`CONVERT()`函数进行转换: ```sql SELECT * FROM table WHERE CONVERT(column USING utf8mb4) = 'value'; ``` 这将把`column`的字符集转换为`utf8mb4`,以便与其他数据行匹配。 请注意,根据你的具体情况,可能需要适当调整这些解决方案。如果问题仍然存在,请提供更多的上下文和查询示例,以便我们能够更好地帮助你解决问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值