• Java第三次作业--面向对象基础(封装)


    Deadline: 2017-4-6 23:00

    一、学习要点

    认真看书并查阅相关资料,掌握以下内容:

    • 掌握简单类的设计
    • 掌握利用对象引用建立类与类之间的联系
    • 掌握this关键字
    • 掌握static关键字
    • 理解引用传递并掌握基本应用
    • 掌握单例设计模式
    • 理解内部类

    二、作业要求

    发布一篇随笔,主要包括以下几部分的内容:

    (一)学习总结

    1.什么是面向对象的封装性,Java中是如何实现封装性的?试举例说明。
    2.阅读下面程序,分析是否能编译通过?如果不能,说明原因。
    (1)

    class A{
        private int secret = 5;
    }
    public class Test{
    	public static void main(String args[]){
    		A a = new A();
    		System.out.println(a.secret++);
    	}
    }
    

    (2)

    public class Test{
    	int x = 50;
    	static int y = 200;
    	public static void method(){
    		System.out.println(x+y);
    	}
    	public static void main(String args[]){
    		Test.method();
    	}
    }
    

    3 . 使用类的静态变量和构造方法,可以跟踪某个类创建的对象个数。声明一个图书类,数据成员为编号,书名,书价,并拥有静态数据成员册数记录图书的总数。图书编号从1000开始,每产生一个对象,则编号自动递增(利用静态变量和构造方法实现)。下面给出了测试类代码和Book类的部分代码,将代码补充完整。

    class Book{
    	int bookId;
    	String bookName;
    	double price;
    	// 声明静态变量
    	
    	//定义静态代码块对静态变量初始化
    	
    	//构造方法
    	
         public String getBookName() {
    		return bookName;
    	}
    	public void setBookName(String bookName) {
    		this.bookName = bookName;
    	}
    	public double getPrice() {
    		return price;
    	}
    	public void setPrice(double price) {
    		this.price = price;
    	}  
    	//定义方法求图书总册数
    	
    	//重写toString方法
    	
    }
    public class Test{
    	public static void main(String args[]){	
    		Book[] books = {new Book("c语言程序设计",29.3),
    		                new Book("数据库原理",30),
    		                new Book("Java学习笔记",68)};
    		System.out.println("图书总数为:"+ Book.totalBook());	
    		for(Book book:books){
    			System.out.println(book.toString());
    		}
    	}	
    }
    

    4.什么是单例设计模式?它具有什么特点?用单例设计模式设计一个太阳类Sun。
    5.理解Java参数传递机制,阅读下面的程序,运行结果是什么?说明理由。

    public class Test {
        String str = new String("你好  ");
        char[] ch = { 'w','o','l','l','d' };
        public static void main(String args[]) {
            Test test = new Test();
            test.change(test.str, test.ch);
            System.out.print(test.str);
            System.out.print(test.ch);
        }
        public void change(String str, char ch[]) {
            str = "hello";
            ch[0] = 'W';
        }
    }
    

    6.其他需要总结的内容。

    (二)实验总结

    实验内容:
    1.按照下列要求完成类的设计
    (1)设计一个日期类,用于记录年、月、日,提供对日期处理的常用方法(日期输出格式xxxx-xx-xx)。
    (2)设计一个职工类,该职工类至少具有下面的属性:职工号,姓名,性别,生日,工作部门,参加工作时间,设计相应的方法。
    (3)设计一个部门类,包括下列属性:部门编号,部门名称,经理,设计相应方法。
    (4)设计一个测试类,采用对象数组模拟一个拥有两个部门,10个职工的单位,实现对相关信息的查询功能。
    2.设计一个计算工具类,要求:
    (1)为用户提供几个常见的几何体面积和体积的算法(如球的体积和表面积,圆柱体的体积和表面积,圆锥体的体积和表面积)(可以学习使用static关键字)
    (2)设计一个测试类,给出几个不同的圆柱体,圆锥体,球体的尺寸,用计算工具类分别求它们体积的累加和与表面积的累加和。
    (3)设计一个测试类,随机产生球,圆柱、圆锥体的尺寸,模拟考试,要求用户回答它们的体积和面积,并判断用户的回答是否正确
    3.用面向对象编程思想完成评分系统
    4.用面向对象编程思想编写猜拳游戏

    对完成实验内容过程中遇到的问题、解决方案以及程序的设计思路和思考等进行归纳总结。
    格式如下:
    程序设计思路:XXXXXXX
    问题1:XXXXXXX
    原因:XXXXXXX
    解决方案:XXXXXXX
    问题2:XXXXXXX
    原因:XXXXXXX
    解决方案:XXXXXXX

    (三)代码托管(务必链接到你的项目

    • 码云commit历史截图
      上传实验项目代码到码云,在码云项目中选择“统计-commits”,设置搜索时间段,搜索本周提交历史,并截图。

    三、评分标准

    • 作业总分10分,以0.5分为最小打分单位。
    • 程序(5分):本次实验内容有四道题
      - 少一题扣1分。格式不规范扣1分,程序有错误扣1-2分。
    • 学习总结(3分)
      - 内容丰富,有自己的总结、思考和论述--3分
      - 有自己的总结和论述--1-2分
      - 大段文字复制,无自己的总结归纳--0分
    • 实验总结(2分)
      - 总结内容丰富--2分
      - 条理不清晰,应付了事--0-1分
    • 附加分:积极参与博客互评和互动,有实质内容加0.5-1分
    • 没有按时提交作业,则本次作业为0分。
    • 作业抄袭,倒扣10分。

    随笔必须采用MarkDown格式,可参考作业模板

  • 相关阅读:
    方法重载的小demo
    面向对象的小demo
    直接选择排序
    冒泡排序
    杨辉三角用java实现
    从键盘输入成绩,找出最高分,并输出学生成绩等级。成绩>=最高分-10,为A,成绩>=最高分-20,为B,成绩>=最高分-30,为C,其余等级为D
    井号的含义
    svg snap 笔记
    jQuery 插件格式 规范
    工作遇到问题
  • 原文地址:https://www.cnblogs.com/hebau-may/p/6651875.html
Copyright © 2020-2023  润新知