『第1行コードjava』の授業後のプログラミング問題(第4章)
5180 ワード
第四章対象向けの高度な知識
1.抽象メソッドgetClassName()が1つしかないClassNameインタフェースを定義します.クラス名を取得する機能を持つクラスCompanyを設計し、インタフェースClassNameのメソッドgetClassName()を実装します.アプリケーション作成にはCompanyクラスを使用します.コードは次のとおりです.
2.人間(Person)と学生クラス(Student)の機能要件を確立する:A.Personクラスには4つの保護型のデータメンバーname、address、sex、ageがそれぞれ文字列、文字列、文字、整形である.名前、住所、性別、年齢を表す.4つのパラメータ構造方法、1つのパラメータなし構造方法、および4つの属性を表示するための出力方法.B.StudentはPersonを継承し、出力を母体math、englishに増やして数学と英語の成績を保存する.6つのパラメータ構造方法、1つの2つのパラメータ構造方法、1つのパラメータなし構造方法、書き換え出力方法はすべての6つの属性を表示するために使用されます.コードは次のとおりです.
3.従業員クラスを定義して、名前、年齢、性別の属性を持って、そして構造方法を持って、データの方法を表示して、管理層クラスを定義して、従業員クラスを継承して、そして自分の属性があります:職務、年俸.丁一志望類は、従業員類を継承し、自分の属性を持っている:所属部門、月給.コードは次のとおりです.
定義クラスShapeは、一般的な2 Dグラフィックを表します.Shapeは抽象的な方法areaとperimeterを持ち,形状の面積と周長をそれぞれ計算した.長方形、三角形、円形などの2 D形状クラスを定義してみましょう.これらのクラスはShapeクラスのサブクラスです.
時間の原因のため、ただ円形のと矩形のだけを書いて、残りはすべてこのように類推することができて、以上のすべての問題、もし何か間違いがあれば、あるいはもっと優解があれば、各位の連絡を歓迎して、各位の読書に感謝します.
1.抽象メソッドgetClassName()が1つしかないClassNameインタフェースを定義します.クラス名を取得する機能を持つクラスCompanyを設計し、インタフェースClassNameのメソッドgetClassName()を実装します.アプリケーション作成にはCompanyクラスを使用します.コードは次のとおりです.
package www.zbq.com;
interface ClassName {
public abstract void getClassName();
}
class Company implements ClassName {
public void getClassName() {
System.out.println(getClass());
}
}
public class Test {
public static void main(String[] args) {
Company c = new Company();
c.getClassName();
}
}
2.人間(Person)と学生クラス(Student)の機能要件を確立する:A.Personクラスには4つの保護型のデータメンバーname、address、sex、ageがそれぞれ文字列、文字列、文字、整形である.名前、住所、性別、年齢を表す.4つのパラメータ構造方法、1つのパラメータなし構造方法、および4つの属性を表示するための出力方法.B.StudentはPersonを継承し、出力を母体math、englishに増やして数学と英語の成績を保存する.6つのパラメータ構造方法、1つの2つのパラメータ構造方法、1つのパラメータなし構造方法、書き換え出力方法はすべての6つの属性を表示するために使用されます.コードは次のとおりです.
package www.zbq.com;
class Person {
public String name;
public String address;
public char sex;
public int age;
public Person() {
}
public Person(String name, String address, char sex, int age) {
this.name=name;
this.address=address;
this.sex=sex;
this.age=age;
}
public void print() {
System.out.println(" :" + this.name + " :" + this.address + " :" + this.sex + " :" + this.age);
}
}
class Student extends Person
{
public double math;
public double english;
public Student() {}
public Student(double math,double english)
{
this.math=math;
this.english=english;
}
public Student(String name,String address,char sex,int age,double math,double english)
{
this.name=name;
this.address=address;
this.sex=sex;
this.age=age;
this.math=math;
this.english=english;
}
public void print()
{
System.out.println(" :" + this.name + " :" + this.address + " :" + this.sex + " :" + this.age+" :"+this.math+" :"+this.english);
}
}
3.従業員クラスを定義して、名前、年齢、性別の属性を持って、そして構造方法を持って、データの方法を表示して、管理層クラスを定義して、従業員クラスを継承して、そして自分の属性があります:職務、年俸.丁一志望類は、従業員類を継承し、自分の属性を持っている:所属部門、月給.コードは次のとおりです.
class Employee {
public String name;
public int age;
public String sex;
public void Employee(String name, int age, String sex) {
this.name = name;
this.age = age;
this.sex = sex;
}
public void print() {
System.out.println(" :" + this.name + " :" + this.age + " :" + this.sex);
}
}
class Management extends Employee {
private String duty;
private int AnnualSalary;
public void Management(String duty, int AnnualSalary) {
this.duty = duty;
this.AnnualSalary = AnnualSalary;
}
public void print() {
System.out.println(" :" + this.name + " :" + this.age + " :" + this.sex + " :" + this.duty + " :"
+ this.AnnualSalary);
}
}
class OfficeCleck extends Employee {
private String department;
private int MonthlySalary;
public void OfficeCleck(String department, int MonthlySalary) {
this.department = department;
this.MonthlySalary = MonthlySalary;
}
public void print() {
System.out.println(" :" + this.name + " :" + this.age + " :" + this.sex + " :" + this.department + " :"
+ this.MonthlySalary);
}
}
public class Test {
public static void main(String[] args) throws Exception{
Management management = new Management();
management.Employee(" ", 26, " ");
management.Management(" ", 300000);
OfficeCleck officecleck = new OfficeCleck();
officecleck.Employee(" ", 18, " ");
officecleck.OfficeCleck(" ", 10000);
management.print();
officecleck.print();
}
}
定義クラスShapeは、一般的な2 Dグラフィックを表します.Shapeは抽象的な方法areaとperimeterを持ち,形状の面積と周長をそれぞれ計算した.長方形、三角形、円形などの2 D形状クラスを定義してみましょう.これらのクラスはShapeクラスのサブクラスです.
abstract class Shape {
abstract void area();
abstract void perimeter();
}
class Roundness extends Shape {
public double radius;
public Roundness(double radius) {
this.radius = radius;
}
public void area() {
System.out.println(" " + this.radius + " , " + (radius * radius * 3.14));
}
public void perimeter() {
System.out.println(" " + this.radius + " , " + (radius * 2 * 3.14));
}
}
class Rectangle extends Shape {
public double height;
public double width;
public Rectangle(double height, double width) {
this.height = height;
this.width = width;
}
public void area() {
System.out.println(" " + this.height + " " + this.width + " , " + (this.height * this.width));
}
public void perimeter() {
System.out.println(" " + this.height + " " + this.width + " , " + ((this.height + this.width) * 2));
}
}
public class Test {
public static void main(String[] args) {
Roundness roundness = new Roundness(3.5);
roundness.area();
roundness.perimeter();
Rectangle rectangle = new Rectangle(5, 6);
rectangle.area();
rectangle.perimeter();
}
}
時間の原因のため、ただ円形のと矩形のだけを書いて、残りはすべてこのように類推することができて、以上のすべての問題、もし何か間違いがあれば、あるいはもっと優解があれば、各位の連絡を歓迎して、各位の読書に感謝します.