具体代码如下:
兴安盟网站制作公司哪家好,找创新互联公司!从网页设计、网站建设、微信开发、APP开发、响应式网站设计等网站项目制作,到程序开发,运营维护。创新互联公司2013年开创至今到现在10年的时间,我们拥有了丰富的建站经验和运维经验,来保证我们的工作的顺利进行。专注于网站建设就选创新互联公司。
class Pet {
public static final String Male = "雄";
public static final String Female = "雌";
// 名称
private String name;
// 年龄
private int age;
// 性别
private String gender;
// 配偶
private Pet partner;
public Pet(String name, int age, String gender) {
this.name = name;
this.age = age;
this.gender = gender;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
if (gender != Male gender != Female) {
throw new IllegalArgumentException("无效的参数[gender]。");
}
this.gender = gender;
}
public Pet getPartner() {
return partner;
}
public void setPartner(Pet partner) {
this.partner = partner;
}
// 判断自己是否满足结婚条件
public boolean isMarriageable() {
// 判断自己是否有配偶
if (this.partner != null) {
return false;
}
// 判断己方是否满足结婚年龄
if ((this.gender == Male this.age 5) ||
(this.gender == Female this.age 4)) {
return false;
}
return true;
}
// 判断自己是否可以和 pet 结婚
public boolean isMarriageableWith(Pet pet) {
// 判断自己是否满足结婚条件
if (!this.isMarriageable()) {
return false;
}
// 判断对方是否满足结婚条件
if (!pet.isMarriageable()) {
return false;
}
// 判断双方是否为同性
if (this.gender.equals(pet.getGender())) {
return false;
}
return true;
}
// 结婚方法
public void marry(Pet partner) {
// 把对方设置为自己的配偶
this.setPartner(partner);
// 把自己设置为对方的配偶
partner.setPartner(this);
}
}
public class Homework4 {
public static void main(String[] args) {
Pet p1 = new Pet("小花猫", 5, Pet.Male);
Pet p2 = new Pet("小黑猫", 4, Pet.Female);
// 判断小花猫是否可以和小黑猫结婚
boolean result = p1.isMarriageableWith(p2);
System.out.println(result ? "小花猫和小黑猫可以结婚" : "小花猫和小黑猫不可以结婚");
// 小花猫和小黑猫结婚
p1.marry(p2);
Pet p3 = new Pet("小白猫", 4, Pet.Female);
// 判断小白猫是否可以和小花猫结婚,小黑猫已经有配偶了不能结婚
result = p3.isMarriageableWith(p1);
System.out.println(result ? "小白猫和小花猫可以结婚" : "小白猫和小花猫不可以结婚");
}
}
public class Test {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String str = "";
while(true) {
System.out.println("请输入一个字符:");
str = sc.nextLine();
if(str=="exit") // 如果字符串为"exit",退出循环
break;
if(str.length()==1) {
char c = str.charAt(0);
System.out.println("它对应的ASCII码为:" + (int)c); //(int)c将c强制转换为它的ascii码
}
else
System.out.println("请输入一位字符。");
}
sc.close();
}
}
class Car
{
// 车辆属性
private String brand; // 品牌
private double engineDisplacement;// 排气量
private double speed;// 当前速度
private boolean status;// 启动状态
private double maxSpeed;// 最大速度
public double getSpeed () {
return this.speed;
}
public Car(String brand, double engineDisplacement, double maxSpeed) {
this.brand = brand;
this.engineDisplacement = engineDisplacement;
this.maxSpeed = maxSpeed;
// 其他属性也要有初始值,不然执行出错。
this.speed = 0;
this.status = false;
}
/** 启动 */
public void start() {
this.status = true;
printNowStatus ();
}
/** 关闭(熄火) */
public void stop() {
// 只在速度为0时关闭(貌似楼上两位没仔细看题…)
if (this.speed == 0)
{
this.status = false;
}
printNowStatus ();
}
/** 加速 */
public void speedUp() {
// 只在启动时可以加速
if (this.status)
{
this.speed = this.speed + 20;
if (this.speed this.maxSpeed)
{
this.speed = this.maxSpeed;
}
}
printNowStatus ();
}
/** 减速 */
public void slowDown() {
// 只在启动时可以减速
if (this.status)
{
this.speed = this.speed - 10;
if (this.speed 0)
{
this.speed = 0;
}
}
printNowStatus ();
}
/** 状态打印,在每次启动,加减速,关闭时调用 */
private void printNowStatus () {
System.out.println("轿车【" + this.brand + "】现在的启动状态是:" + this.status + "速度是:" + this.speed +"。");
}
}
public class TestCar
{
public static void main(String[] args)
{
Car myCar = new Car ("红旗", 2, 120);
//启动
myCar.start();
// 循环加速到120
while (myCar.getSpeed() 120)
{
myCar.speedUp();
}
//循环减速
while (myCar.getSpeed() 0)
{
myCar.slowDown();
}
//关闭
myCar.stop();
}
}
/* 直接拿文本写的,我用的电脑没装jdk,楼主自己到Java开发环境下调试,应该没什么问题… */
import java.util.Scanner;//定义接口
public interface animals {
String monkey = "猴子";
String elephant = "大象";
String peach = "桃子";
String banana = "香蕉";
}
//这是猴子的类
class monkey implements animals{
public void monkeyeat(){
Scanner sc = new Scanner(System.in);
System.out.println("请输入你要给猴子吃的食物");
String food1 = sc.next();
if(food1.equals(peach)){
System.out.println("你给猴子吃的食物是"+peach+",请选择要给它吃好的还是坏的");
String choose1 = sc.next();
if(choose1.equals("好的")){
System.out.println("猴子吃到了好的"+peach+",猴子笑哈哈");
}else if(choose1.equals("坏的")){
System.out.println("猴子吃到了坏的"+peach+",哭了起来");
}else{
System.out.println("您的输入有误,请输入好的或者坏的");
}
}
else if(food1.equals(banana)){
System.out.println("你给猴子吃的食物是"+banana+",请选择要给它吃好的还是坏的");
String choose2 = sc.next();
if(choose2.equals("好的")){
System.out.println("猴子吃到了好的"+banana+",猴子跳起来");
}else if(choose2.equals("坏的")){
System.out.println("猴子吃到了坏的"+banana+",扔掉"+banana);
}else{
System.out.println("您的输入有误,请输入好的或者坏的");
}
}else{
System.out.println("您输入的食物有误,这里只有"+peach+"和"+banana+"两种食物");
}
}
}
//这是大象的类
class elephant implements animals{
public void elephanteat(){
Scanner sc = new Scanner(System.in);
System.out.println("请输入你要给大象吃的食物");
String food2 = sc.next();
if(food2.equals(peach)){
System.out.println("你给大象吃的食物是"+peach+",大象不吃桃子");
}else if(food2.equals(banana)){
System.out.println("你给大象吃的食物是"+banana+",请选择要给它吃好的还是坏的");
String choose3 = sc.next();
if(choose3.equals("好的")){
System.out.println("大象吃到了好的"+banana+",大象翘鼻子");
}else if(choose3.equals("坏的")){
System.out.println("大象吃到了坏的"+banana+",吐了出来");
}else{
System.out.println("您的输入有误,请输入好的或者坏的");
}
}else {
System.out.println("您输入的食物有误,这里只有"+peach+"和"+banana+"两种食物");
}
}
}
//测试类
class Test{
public static void main(String []args){
monkey one = new monkey();
one.monkeyeat();
elephant two = new elephant();
two.elephanteat();
}
}
抽象类中的构造方法其实是用来给继承的子类来用的,构造方法相当于初始化的方法,抽象类是不能够实例化的,只能被继承后实例化,但调用子类的构造方法时是需要调用父类的构造方法的,所以你可以在子类产生对象时抽象类中按需求初始化抽象类中的字段以及执行一些初始化代码。