学生类
- 建立一个人类(Person)和学生类(Student),功能要求如下:
- Person类中包含4个私有型的数据成员name、addr、sex、age,分别为字符串型、字符串型、字符型、整型,表示姓名姓名、地址、性别、年龄。一个4参构造方法、一个2参构造方法、一个无参构造方法,一个输出方法显示4种属性
- Student类继承Person类,并增加成员math、english存放数学和英语成绩,一个6参构造方法、一个2参构造方法、一个无参构造方法和覆写输出方法用于显示6种属性
class Person {
private String name;
private String addr;
private char sex;
private int age;
public Person() {}
public Person(String name, String addr) {
this(name, addr, '男', 0);
}
public Person(String name, String addr, char sex, int age) {
this.name = name;
this.addr = addr;
this.sex = sex;
this.age = age;
}
public String getInfo() {
return "姓名:" + this.name + "、地址:" + this.addr + "、性别:" + this.sex + "、年龄:" + this.age;
}
public void setName(String name) {
this.name = name;
}
public void setAddr(String addr) {
this.addr = addr;
}
public void setSex(char sex) {
this.sex = sex;
}
public void setAge(int age) {
this.age = age;
}
public String getName() {
return this.name;
}
public String getAddr() {
return this.addr;
}
public char getSex() {
return this.sex;
}
public int getAge() {
return this.age;
}
}
class Student extends Person {
private double math;
private double english;
public Student() {}
public Student(String name, String addr) {
super(name, addr);
}
public Student(String name, String addr, char sex, int age, double math, double english) {
super(name, addr, sex, age);
this.math = math;
this.english = english;
}
public String getInfo() {
return super.getInfo() + "、数学成绩:" + this.math + "、英语成绩:" + this.english;
}
public void setMath(double math) {
this.math = math;
}
public void setEnglish(double english) {
this.english = english;
}
public double getMath() {
return this.math;
}
public double getEnglish() {
return this.english;
}
}
public class JavaDemo {
public static void main(String args []) {
Student stu = new Student("张三", "天安门", '男', 12, 78.99, 89.98);
System.out.println(stu.getInfo());
}
}
管理人员与职员
- 定义员工类,具备姓名、年龄、性别属性,并具有构造方法和显示数据方法,定义管理层类继承员工类,并且拥有自己的属性职务和年薪,定义职员类继承员工类,并有自己的属性所属部门和月薪
class Employee {
private String name;
private int age;
private String sex;
public Employee() {}
public Employee(String name, int age, String sex) {
this.name = name;
this.age = age;
this.sex = sex;
}
public String getInfo() {
return "姓名:" + this.name + "、年龄:" + this.age + "、性别:" + this.sex;
}
public void setName(String name) {
this.name = name;
}
public void setAge(int age) {
this.age = age;
}
public void setSex(String sex) {
this.sex = sex;
}
public String getName() {
return this.name;
}
public int getAge() {
return this.age;
}
public String getSex() {
return this.sex;
}
}
class Manager extends Employee {
private String job;
private double income;
public Manager() {}
public Manager(String name, int age, String sex, String job, double income) {
super(name, age, sex);
this.job = job;
this.income = income;
}
public String getInfo() {
return "【管理层】" + super.getInfo() + "、职位:" + this.job + "、年薪:" + this.income;
}
public void setJob(String job) {
this.job = job;
}
public void setIncome(double income) {
this.income = income;
}
public String getJob() {
return this.job;
}
public double getIncome() {
return this.income;
}
}
class Staff extends Employee {
private String dept;
private double salary;
public Staff() {}
public Staff(String name, int age, String sex, String dept, double salary) {
super(name, age, sex);
this.dept = dept;
this.salary = salary;
}
public String getInfo() {
return "【职员】" + super.getInfo() + "、部门:" + this.dept + "、月薪:" + this.salary;
}
public void setDept(String dept) {
this.dept = dept;
}
public void setSalary(double salary) {
this.salary = salary;
}
public String getDept() {
return this.dept;
}
public double getSalary() {
return this.salary;
}
}
public class JavaDemo {
public static void main(String args []) {
Manager man = new Manager("张三", 38, "女", "主管", 150000.00);
Staff staff = new Staff("李四", 18, "男", "出纳", 3000.00);
System.out.println(man.getInfo());
System.out.println(staff.getInfo());
}
}
字符串统计
- 编写程序,统计出字符串"want you to know one thing"字母n和字母o的出现次数
//只是一个顺序的思维模式
class StringUtil {
public static int [] count(String str) {
int countData [] = new int [2];
char [] data = str.toCharArray();
for(int x = 0; x < data.length; x++) {
if(data[x] == 'n' || data[x] == 'N') {
countData[0]++;
}
if(data[x] == 'o' || data[x] == 'O') {
countData[1]++;
}
}
return countData;
}
}
public class JavaDemo {
public static void main(String args []) {
String str = "want you to know one thing";
int result [] = StringUtil.count(str);
System.out.println("字母n的个数:" + result[0]);
System.out.println("字母o的个数:" + result[1]);
}
}
//继承模式
class StringUtil {
private String content;
public StringUtil() {}
public StringUtil(String content) {
this.content = content;
}
public String getInfo() {
return this.getContent();
}
public void setContent(String content) {
this.content = content;
}
public String getContent() {
return this.content;
}
}
class Stringcount extends StringUtil{
private int nCount;
private int oCount;
public Stringcount() {}
public Stringcount(String content) {
super(content);
this.countChar();
}
public void countChar() {
char [] data = super.getContent().toCharArray();
for(int x = 0; x < data.length; x++) {
if(data[x] == 'n' || data[x] == 'N') {
this.nCount++;
}
if(data[x] == 'o' || data[x] == 'O') {
this.oCount++;
}
}
}
public String getInfo() {
return "n的个数:" + this.nCount + "、o的个数:" + this.oCount;
}
public void setNCount(int nCount) {
this.nCount = nCount;
}
public void setOCount(int oCount) {
this.oCount = oCount;
}
public int getNCount() {
return this.nCount;
}
public int getOCount() {
return this.oCount;
}
}
public class JavaDemo {
public static void main(String args []) {
Stringcount sc = new Stringcount("want you to know one thing");
System.out.println(sc.getInfo());
}
}
数组操作
建立一个可以实现整型数组的操作类(Array),而后在里面可以操作的数组大小由外部决定,而后在Array类里面需要提供有数组的如下处理:进行数据的增加(如果数据满了则无法增加)、可以实现数组容量的扩充、取得数组的全部内容。
完成之后在此基础上再派生出两个子类:
- 数组排序类:返回的数据必须是排序后的结果
- 数组反转类:可以实现内容的首尾互换
class Array {
private int [] data;
private int foot;
public Array() {}
public Array(int length) {
if(length > 0) {
this.data = new int [length];
} else {
this.data = new int [1];
}
}
public void increment(int num) {
int [] newData = new int [this.data.length + num];
System.arraycopy(this.data, 0, newData, 0, this.data.length);
this.data = newData;
}
public boolean add(int num) {
if(this.foot < this.data.length) {
this.data[this.foot++] = num;
return true;
}
return false;
}
public int [] getData() {
return this.data;
}
}
class SortArray extends Array {
public SortArray() {}
public SortArray(int length) {
super(length);
}
public int [] getData() {
java.util.Arrays.sort(super.getData());
return super.getData();
}
}
class ReverseArray extends Array {
public ReverseArray() {}
public ReverseArray(int length) {
super(length);
}
public int [] getData() {
int center = super.getData().length / 2;
int head = 0;
int tail = super.getData().length - 1;
for(int x = 0; x < center; x++) {
int temp = super.getData() [head];
super.getData() [head] = super.getData() [tail];
super.getData() [tail] = temp;
head++;
tail--;
}
return super.getData();
}
}
public class JavaDemo {
public static void main(String args []) {
Array arr1 = new Array(5);
SortArray arr2 = new SortArray(5);
ReverseArray arr3 = new ReverseArray(5);
System.out.println(arr2.add(11));
System.out.println(arr2.add(2));
System.out.println(arr2.add(32));
System.out.println(arr2.add(24));
System.out.println(arr2.add(15));
arr2.increment(3);
System.out.println(arr2.add(26));
System.out.println(arr2.add(1));
System.out.println(arr2.add(7));
int [] result = arr2.getData();
for(int x = 0; x < result.length; x++) {
System.out.print(result[x] + "、");
}
}
}
网友评论