侧边栏壁纸
博主头像
飞云资料栈博主等级

行动起来,活在当下

  • 累计撰写 91 篇文章
  • 累计创建 7 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

描述类介绍与使用习题答案.md

Fly
Fly
2021-11-14 / 0 评论 / 0 点赞 / 27 阅读 / 12021 字

基础题目

第一题:概念辨析

  1. 一个类与它的对象之间是什么关系?

    类是对象的模板,对象是类的实体
    
  2. 如何定义一个类,由哪些部分组成,各个部分的作用是什么?

    三部分:
    	成员变量:描述事物的状态信息
    	构造方法:创建事物对象
    	成员方法:描述事物能做什么
    
  3. 如何创建一个对象,如何使用该对象?

    // 创建对象格式: 
    	数据类型 变量名 = new 数据类型();
    // 对象使用方式:
    	变量名.成员变量
    	变量名.成员方法
    
  4. 局部变量和成员变量的区别?

    在类中的位置不同 
    	成员变量:类中,方法外 
    	局部变量:方法中或者方法声明上(形式参数)
    作用范围不一样 
    	成员变量:类中 
    	局部变量:方法中
    初始化值的不同 
    	成员变量:有默认值 
    	局部变量:没有默认值。
    在内存中的位置不同 
    	成员变量:堆内存 
    	局部变量:栈内存
    生命周期不同 
    	成员变量:随着对象的创建而存在,随着对象的消失而消失 
    	局部变量:随着方法的调用而存在,随着方法的调用完毕而消失
    
  5. 构造方法和成员方法的区别?

    作用不同:
    	构造方法:创建对象
    	成员方法:执行某具体功能
    命名不同:
    	构造方法:类名一致
    	成员方法:自定义
    返回值类型不同:
    	构造方法:无返回值类型
    	成员方法:void或者确定的数据类型
    调用不同:
    	构造方法:new 关键字调用
    	成员方法:对象.成员方法名调用
    

第二题:语法练习

  • 定义一个圆形Circle类。

    • 属性:
      • r:半径
    • 构造方法:
      • 无参构造方法
      • 满参构造方法
    • 成员方法:
      • get/set方法
      • showArea方法:打印圆形面积
      • showPerimeter方法:打印圆形周长
  • 定义测试类,创建Circle对象,并测试。

  • 代码实现,效果如图所示:

  • 开发提示:

    面向周长公式:2 * 3.14* 半径

    圆形面积公式:3.14* 半径^2

  • 参考答案:

    • Circle类:
    
    		  public class Circle {
    		      int r;
    
    		      public Circle() {
    		      }
    
    		      public Circle(int r) {
    		          this.r = r;
    		      }
    
    		      public int getR() {
    		          return r;
    		      }
    
    		      public void setR(int r) {
    		          this.r = r;
    		      }
    
    		      public void showArea(){
    		          System.out.println("半径为:"+ r +",面积为:"+ ( 3.14 * r * r));
    		      }
    
    		      public void showPerimeter(){
    		          System.out.println("半径为:"+ r +",面积为:"+ ( 2 * 3.14 * r));
    		      }
    		  }
    
    • 测试类:
    
    	  public class Test2 {
    	      public static void main(String[] args) {
    	          Circle circle = new Circle(8);
    	          circle.showArea();
    	          circle.showPerimeter();
    	      }
    	  }
    

第三题:语法练习

  • 定义一个日期MyDate类。
    • 属性:
      • year:年
      • month:月
      • day:日
    • 构造方法:
      • 满参构造方法
    • 成员方法:
      • get/set方法
      • showDate方法:打印日期。
      • isBi方法:判断当前日期是否是闰年
  • 定义测试类,创建MyDate对象,并测试。
  • 代码实现,效果如图所示:

  • 开发提示:

    • 闰年:
      • 普通年(不能被100整除的年份)能被4整除的为闰年。(如2004年就是闰年,1999年不是闰年);
      • 世纪年(能被100整除的年份)能被400整除的是闰年。(如2000年是闰年,1900年不是闰年);
  • 参考答案:

    • MyDate类:
    
    	  public class MyDate {
    	      int year;
    	      int month;
    	      int day;
    
    	      public MyDate(int year, int month, int day) {
    	          this.year = year;
    	          this.month = month;
    	          this.day = day;
    	      }
    
    	      public int getYear() {
    	          return year;
    	      }
    
    	      public void setYear(int year) {
    	          this.year = year;
    	      }
    
    	      public int getMonth() {
    	          return month;
    	      }
    
    	      public void setMonth(int month) {
    	          this.month = month;
    	      }
    
    	      public int getDay() {
    	          return day;
    	      }
    
    	      public void setDay(int day) {
    	          this.day = day;
    	      }
    
    	      public void showDate() {
    	          System.out.println("日期:" +
    	                  year +
    	                  "年" + month +
    	                  "月" + day +
    	                  "日");
    	      }
    
    	      public void isBi() {
    
    	          if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) {
    	              System.out.println(year + "年是闰年");
    	          } else {
    	              System.out.println(year + "年不是闰年");
    	          }
    	      }
    	  }
    
    • 测试类:
    
    	public class Test3 {
    	    public static void main(String[] args) {
    	        MyDate date = new MyDate(1900, 1, 1);
    	        date.showDate();
    	        date.isBi();
    	    }
    	}
    

第四题:语法练习

  • 定义一个扑克Card类。

    • 属性:
      • 花色
      • 点数
    • 构造方法:
      • 满参构造方法
    • 成员方法:
      • showCard方法:打印牌面信息
  • 定义测试类,创建Card对象,调用showCard方法。

  • 代码实现,效果如图所示:

  • 参考答案:

    • Card类:
    
    	  public class Card {
    	      private String ds; // 点数
    	      private String hs; // 花色
    
    	      public Card(String ds, String hs) {
    	          this.ds = ds;
    	          this.hs = hs;
    	      }
    
    	      public void showCard() {
    	          System.out.println( ds +    hs  );
    	      }
    	  }
    
    • 测试类:
    
    	  public class Test5 {
    	      public static void main(String[] args) {
    	          Card card = new Card("黑桃", "A");
    	          card.showCard();
    	      }
    	  }
    

第五题:语法练习

  • 定义两个类,经理类Manager,程序员类Coder
  • Coder类:
    • 属性:姓名,工号,薪资
    • 构造方法:无参构造方法,满参构造方法
    • 成员方法:
      • get/set方法
      • intro方法:打印姓名,工号信息
      • showSalary方法:打印薪资信息
      • work方法:打印工作信息
  • Manager类:
    • 属性:姓名,工号,薪资
      • 经理的薪资有两部分组成:基本工资+奖金
    • 构造方法:无参构造方法,满参构造方法
    • 成员方法:
      • get/set方法
      • intro方法:打印姓名,工号信息
      • showSalary方法:打印薪资信息
      • work方法:打印工作信息
  • 定义测试类,创建Manager对象,创建Coder对象,并测试。
  • 代码实现,效果如图所示:

  • 参考答案:

    • Coder类:
    
    	  package test4;
    
    	  public class Coder {
    	      private String name;
    	      private String id;
    	      private int salary; // 基本工资
    
    	      public Coder() {
    
    	      }
    
    	      public Coder(String name, String id, int salary) {
    	          this.name = name;
    	          this.id = id;
    	          this.salary = salary;
    	      }
    
    	      public String getName() {
    	          return name;
    	      }
    
    	      public void setName(String name) {
    	          this.name = name;
    	      }
    
    	      public String getId() {
    	          return id;
    	      }
    
    	      public void setId(String id) {
    	          this.id = id;
    	      }
    
    	      public int getSalary() {
    	          return salary;
    	      }
    
    	      public void setSalary(int salary) {
    	          this.salary = salary;
    	      }
    
    	      public void showSalary() {
    	          System.out.println("基本工资为" + salary + ",奖金无");
    	      }
    
    	      public void intro() {
    	          System.out.println("程序员姓名:" + name);
    	          System.out.println("工号:" + id);
    	      }
    
    	      public void work() {
    	          System.out.println("正在努力写代码......");
    	      }
    	  }
    
    
    • Manager类:
    
    	  public class Manager {
    	      private String name;
    	      private String id;
    	      private int[] salary; // 基本工资 + 奖金
    
    	      public Manager() {
    	      }
    
    	      public Manager(String name, String id, int[] salary) {
    	          this.name = name;
    	          this.id = id;
    	          this.salary = salary;
    	      }
    
    	      public String getName() {
    	          return name;
    	      }
    
    	      public void setName(String name) {
    	          this.name = name;
    	      }
    
    	      public String getId() {
    	          return id;
    	      }
    
    	      public void setId(String id) {
    	          this.id = id;
    	      }
    
    	      public int[] getSalary() {
    	          return salary;
    	      }
    
    	      public void setSalary(int[] salary) {
    	          this.salary = salary;
    	      }
    
    	      public void showSalary() {
    	          System.out.println("基本工资为" + salary[0] + ",奖金为" + salary[1]);
    	      }
    
    	      public void intro() {
    	          System.out.println("经理姓名:" + name);
    	          System.out.println("工号:" + id);
    	      }
    
    	      public void work() {
    	          System.out.println("正在努力的做着管理工作,分配任务,检查员工提交上来的代码.....");
    	      }
    	  }
    
    • 测试类:
    
    	  public class Test5 {
    	      public static void main(String[] args) {
    	          int[] salary  = {15000, 3000};
    	          Manager m = new Manager("James", "9527",salary );
    	          m.intro();
    	          m.showSalary();
    	          m.work();
    
    	          System.out.println("============");
    	          Coder c = new Coder();
    	          c.setName("Kobe");
    	          c.setId("0025");
    	          c.setSalary(10000);
    	          c.intro();
    	          c.showSalary();
    	          c.work();
    
    	      }
    	  }
    

第六题:语法练习

  • 老师类Teacher

    • 属性:姓名name,年龄age,讲课内容content
    • 成员方法:吃饭eat方法,讲课teach方法
  • 学生类Student

    • 属性:姓名name,年龄age,学习内容content
      行为:吃饭eat方法, 学习study方法
  • 代码实现,效果如图所示:

  • 参考答案:

    • Teacher类:
    
    	  package test6;
    	  /*
    	   */
    	  public class Teacher {
    	  	private String name;
    	  	private int age;
    	  	private String content;
    	  	/**
    	  	 * 讲课方法
    	  	 */
    	  	public void jiangke() {
    	  		System.out.println("年龄为"+age+"的"+name+"正在亢奋的讲着"+content+"的知识........");
    	  	}
    
    	  	public void eat() {
    	  		System.out.println("年龄为"+age+"的"+name+"正在吃饭....");
    	  	}
    
    	  	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 getContent() {
    	  		return content;
    	  	}
    
    	  	public void setContent(String content) {
    	  		this.content = content;
    	  	}
    
    	  	public Teacher() {
    	  	}
    
    	  	public Teacher(String name, int age, String content) {
    	  		this.name = name;
    	  		this.age = age;
    	  		this.content = content;
    	  	}
    
    	  }
    
    
    • 学生类:
    
    	  public class Student {
    	  	private String name;
    	  	private int age;
    	  	private String content;
    	  	public void study() {
    	  		System.out.println("年龄为"+age+"的"+name+"正在专心致志的听着"+content+"的知识........");
    	  	}
    	  	public void eat() {
    	  		System.out.println("年龄为"+age+"的"+name+"正在吃饭....");
    	  	}
    
    	  	public Student(String name, int age, String content) {
    	  		this.name = name;
    	  		this.age = age;
    	  		this.content = content;
    	  	}
    	  	public Student() {
    	  	}
    	  	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 getContent() {
    	  		return content;
    	  	}
    	  	public void setContent(String content) {
    	  		this.content = content;
    	  	}
    	  }
    
    • 测试类:
    
    	  public class Test6 {
    	  	public static void main(String[] args) {
    	  		Teacher t = new Teacher();
    	  		t.setName("周老师");
    	  		t.setAge(30);
    	  		t.setContent("java面向对象");
    	  		t.eat();
    	  		t.jiangke();
    	  		Student stu = new Student("韩同学",18,"java面向对象");
    	  		stu.eat();
    	  		stu.study();
    	  	}
    	  }
    
0

评论区