为了账号安全,请及时绑定邮箱和手机立即绑定

java基础练习——类的设计和对象的创建、成员变量和成员方法的设计

标签:
Java

和之前一样,依旧以题为例为大家讲述java类的设计和对象的创建、成员变量和成员方法的设计,欢迎大家交流讨论、
1、Point类例子(1)
请将下面程序的【代码】替换为Java程序代码,使程序运行正确。

文件Main.java
import java.util.Scanner;
public class Main {
    public static void main(String args[]) {
        // TODO Auto-generated method stub
        Scanner in = new Scanner(System.in);
        int n = in.nextInt();
        Point pt = 【代码1】 Point(1, n);// 创建对象
        System.out.println("pt.x=" + 【代码2】.x);// 取
        pt.x = 5;// 修改
        System.out.println("pt.x=" + pt.x);
        pt.move(3, 3);// 移动
        System.out.println("pt.x=" + pt.x);
        System.out.println("pt.y=" + pt.y);
        【代码3】 pt2 = new Point();// 声明对象并new
        System.out.println("pt2.x=" + pt2.x);
        pt2 = new Point(9, 2);
        System.out.println("pt2.x=" + pt2.x);
    }
}
class Point {
    int x, y;// 成员变量,属性
    【代码4】 Point() {// 无参构造方法
        x = 0;
        y = 0;
    }
    public Point(int ix, int 【代码5】) {// 有参构造方法
        x = ix;
        y = iy;
    }
    【代码6】 move(int ix, int iy) {// 方法
        x += ix;// x=x+ix
        y += iy;
    }
}

解题

import java.util.Scanner;
public class Main {
    public static void main(String args[]) {
        // TODO Auto-generated method stub
        Scanner in = new Scanner(System.in);
        int n = in.nextInt();
        Point pt = new Point(1, n);// 创建对象
        System.out.println("pt.x=" + pt.x);// 取
        pt.x = 5;// 修改
        System.out.println("pt.x=" + pt.x);
        pt.move(3, 3);// 移动
        System.out.println("pt.x=" + pt.x);
        System.out.println("pt.y=" + pt.y);
        Point pt2 = new Point();// 声明对象并new
        System.out.println("pt2.x=" + pt2.x);
        pt2 = new Point(9, 2);
        System.out.println("pt2.x=" + pt2.x);
    }
}
class Point {
    int x, y;// 成员变量,属性
    public Point() {// 无参构造方法
        x = 0;
        y = 0;
    }
    public Point(int ix, int iy) {// 有参构造方法
        x = ix;
        y = iy;
    }
    public void move(int ix, int iy) {// 方法
        x += ix;// x=x+ix
        y += iy;
    }
}

类描述图
类名称 Point
成员变量 int x,y
成员方法 void move(int is,int iy)
构造方法 Point() Point(int ix,int iy)

2、类的基本操作简单例子

文件Main.java
public class Main {
    public static void main (String args[ ]) {
       【代码1】//命令行窗口输出"教学活动从教室开始"
       Teacher zhang = new Teacher();
       Student jiang = 【代码2】Student();//创建对象
       zhang.introduceSelf();
       jiang.【代码2】; //调用它的方法
    }
}
class Teacher {
  void introduceSelf() {
     【代码3】    //命令行窗口输出"我是李老师"
   }
}
 
class Student {
  void introduceSelf() {
     【代码4】/ /命令行窗口输出"我是学生,名字是:奖励"
   }
}

解题

public class Main {
    public static void main (String args[ ]) {
       System.out.println("教学活动从教室开始");//命令行窗口输出"教学活动从教室开始"
       Teacher zhang = new Teacher();
       Student jiang = new Student();//创建对象
       zhang.introduceSelf();
       jiang.introduceSelf(); //调用它的方法
    }
}
class Teacher {
  void introduceSelf() {
     System.out.println("我是李老师");    //命令行窗口输出"我是李老师"
   }
}
 
class Student {
  void introduceSelf() {
	  System.out.println("我是学生,名字是:奖励");//命令行窗口输出"我是学生,名字是:奖励"
   }
}
类描述图
类名称 Teacher
成员方法 introduceSelf()
类名称 Student
成员方法 introduceSelf()

3、关于Point类的操作(2)
下面程序构造一个类来描述屏幕上的一个点,该类的构成包括点的 x 和 y 两个坐标,以及一些对点 进行的操作,包括:取得点的坐标值,对点的坐标进行赋值,编写应用程序生成该类的对象并 对其进行操作。

文件Main.java
 public class Main {
 
public static void main(String[] args) {
Point Point1 = new Point(3, 4);
System.out.println("Point1:" + "(" +
Point1.x + "," + Point1.y + ")");
 
Point Point2 = Point1.getPoint();
System.out.println("Point2:" + "(" +
Point2.x + "," + Point2.y + ")");
 
Point 【代码1】 = new Point(5, 6);
Point1.setPoint(Point3);
System.out.println("Point1:" + "(" +
Point1.x + "," + Point1.y + ")");
}
}
 
class Point {
int x, y;
 
public Point(int x, 【代码2】) {
this.x = x;
this.y = y;
}
 
【代码3】 Point getPoint() {
Point tempPoint = new Point(x, y);
return tempPoint;
}
 
public void setPoint(Point point) {
this.x = point.x;
【代码4】y = point.y;
}
}
 

解题

public class Main {
 
public static void main(String[] args) {
Point Point1 = new Point(3, 4);
System.out.println("Point1:" + "(" +
Point1.x + "," + Point1.y + ")");
 
Point Point2 = Point1.getPoint();
System.out.println("Point2:" + "(" +
Point2.x + "," + Point2.y + ")");
 
Point Point3 = new Point(5, 6);
Point1.setPoint(Point3);
System.out.println("Point1:" + "(" +
Point1.x + "," + Point1.y + ")");
}
}
 
class Point {
int x, y;
 
public Point(int x, int y) {
this.x = x;
this.y = y;
}
 
public Point getPoint() {
Point tempPoint = new Point(x, y);
return tempPoint;
}
 
public void setPoint(Point point) {
this.x = point.x;
this.y = point.y;
}
 
}
类名称 Point
成员变量 Int x,y
成员方法 getPoint() setPoint(Point point)
构造方法 Point(int x,inty)

4、关于Point类的操作(3)
下面程序构造一个类来描述屏幕上的一个点,该类的构成包括点的 x 和 y 两个坐标,以及一些对点 进行的操作,包括:取得点的坐标值,对点的坐标进行赋值,编写应用程序生成该类的对象并 对其进行操作。

文件Main.java
 
public class Main {
 
public static void main(String[] args) {
// TODO Auto-generated method stub
Point origin = new 【代码1】(10, 10);
origin.getPoint();
【代码2】.setPoint(20, 20);
origin.getPoint();
}
 
}
 
class Point {
private int x;
private int y;
 
public Point(int x, int y) {
this.x = x;
【代码3】y = y;
}
 
public void setPoint(int x1, int y1) {
x = x1;
y = y1;
}
 
public void getPoint() {
System.out.println("Point x: " + x + ",y: " + y);
}
 
}

解题

public class Main {
 
public static void main(String[] args) {
// TODO Auto-generated method stub
Point origin = new Point(10, 10);
origin.getPoint();
origin.setPoint(20, 20);
origin.getPoint();
}
 
}
 
class Point {
private int x;
private int y;
 
public Point(int x, int y) {
this.x = x;
this.y = y;
}
 
public void setPoint(int x1, int y1) {
x = x1;
y = y1;
}
 
public void getPoint() {
System.out.println("Point x: " + x + ",y: " + y);
}
 
}
类名称 Point
成员变量 private int x; private int y;
成员方法 setPoint(int x1, int y1) getPoint()
构造变量 Point(int x, int y)

5、按面向对象要求编程在Employee加入身份证
下面程序在Employee类中加入身份证信息,但类Employee中部分代码缺失.请编写程序代码,使程序运行正确。

文件Main.java
 
import java.util.*;
public class Main {
 public static void main(String args[]) {
  Scanner reader = new Scanner(System.in);
  String name=reader.nextLine();
  String ID=reader.nextLine();
  int salary= reader.nextInt();
  int year = reader.nextInt();
  int month=reader.nextInt();
  int day=reader.nextInt();  
Employee e = new Employee(name,ID,salary,year,month,day);
e.raiseSalary(5);
System.out.println("姓名:"+e. getName()+ " 身份证:" +e.getID()+" 工资:"+ e.getSalary());
  System.out.println("The Main class is end.");
 }
}
 
class Employee {
  private String name;//私有域,姓名
  private String ID;//私有域,身份证
  private double salary;//私有域,工资
  private Date hireDay; //私有域,录用日期
  //构造方法
  public Employee(String n, double s, int year, int month, int day)
  {
     name = n;//参数,(局部)变量
     salary = s;//参数, (局部)变量
     GregorianCalendar calendar = new GregorianCalendar(year, month - 1, day);
     // GregorianCalendar uses 0 for January(1月份是0)
     hireDay = calendar.getTime();
  }
 
public String getName() {
return name;
}
public double getSalary() {
return salary;
}
public Date getHireDay() {
return hireDay;
}
//"涨工资"计算
public void raiseSalary(double byPercent)
{
  double raise = salary * byPercent / 100;
  salary += raise;
}
 
}

输入:
姓名
身份证
工资
以空格分隔的日期,形式为YYYY MM DD
输出:
姓名:xxx 身份证:yyyyy 工资:d 这里xxx和yyyyy是字符串,d是double数
The Main class is end.

样例输入:
Romeo
430502199807101121
50000
2014 7 11
样例输出:
姓名:Romeo 身份证:430502199807101121 工资:52500.0
The Main class is end.
解题

import java.util.*;
public class Main {
 public static void main(String args[]) {
  Scanner reader = new Scanner(System.in);
  String name=reader.nextLine();
  String ID=reader.nextLine();
  int salary= reader.nextInt();
  int year = reader.nextInt();
  int month=reader.nextInt();
  int day=reader.nextInt();  
Employee e = new Employee(name,ID,salary,year,month,day);
e.raiseSalary(5);
System.out.println("姓名:"+e. getName()+ " 身份证:" +e.getID()+" 工资:"+ e.getSalary());
  System.out.println("The Main class is end.");
 }
}
 
class Employee {
  private String name;//私有域,姓名
  private String ID;//私有域,身份证
  private double salary;//私有域,工资
  private Date hireDay; //私有域,录用日期
  //构造方法
  public Employee(String n,String id, double s, int year, int month, int day)
  {
     name = n;//参数,(局部)变量
     salary = s;//参数, (局部)变量
     GregorianCalendar calendar = new GregorianCalendar(year, month - 1, day);
     // GregorianCalendar uses 0 for January(1月份是0)
     hireDay = calendar.getTime();
  }
 
public String getID() {
	// TODO Auto-generated method stub
	return ID;
}

public String getName() {
return name;
}

public double getSalary() {
return salary;
}
public Date getHireDay() {
return hireDay;
}
//"涨工资"计算
public void raiseSalary(double byPercent)
{
  double raise = salary * byPercent / 100;
  salary += raise;
}
 
}
类名称
成员变量 private String name; private String ID;private double salary; private Date hireDay;
成员方法 getID() getName() getSalary() getHireDay() raiseSalary(double byPercent)
构造方法 public Employee(String n,String id, double s, int year, int month, int day)
点击查看更多内容
1人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
Linux系统工程师
手记
粉丝
7203
获赞与收藏
414

关注作者,订阅最新文章

阅读免费教程

感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消