2018-07-10学习小结 - 包及访问权限7

学习

18.7

  1. 封装性实际上需要通过三个权限实现:private、default、protected。个人开发常用一般就两个。

(1)只要是定义属性不用思考直接写上private;
(2)只要是定义方法不用思考直接写上public。

  1. 什么是设计模式?

在程序设计时,逐渐形成一些典型问题和问题的解决方案,这就是软件模式;每一个模式描述了一个在我们程序设计中经常发生的问题,以及该问题的解决方案;当我们遇到模式所描述的问题,就可以直接用相应的解决方案去解决这个问题,这就是设计模式。

  1. 多例设计模式的特点

(1)多例类可以有多个实例
(2)多例类必须能够自我创建并管理自己的实例,并向外界提供自己的实例。
(3)根据是否有实例上限分:有上限多例类和无上限多例类。

练习

编写一个程序,声明一个包,在另一个包中使用import语句访问使用,要求:

(1)声明一个包point,其中定义Point类,包含x,y坐标,构造方法,获取x,y坐标及设置;
(2)声明另一个包,导入包Point,其中在新包中定义Circle类,半径,构造方法,获取、设置半径。

设计程序实现圆的实例化,并输出半径和圆心。

解题:

point类:

package com.Javastudy2.point;

/**
 * @author Y.W.
 * @date 2018年7月10日 下午11:41:53
 * @Description TODO 编写一个程序,声明一个包,在另一个包中使用import语句访问使用,要求:
 *              (1)声明一个包point,其中定义Point类,包含x,y坐标,构造方法,获取x,y坐标及设置;
 *              (2)声明另一个包,导入包Point,其中在新包中定义Circle类,半径,构造方法,获取、设置半径。
 *              设计程序实现圆的实例化,并输出半径和圆心。
 */
public class P470_18_8_Point {
    private double x; // x坐标
    private double y; // y坐标

    private P470_18_8_Point(double x, double y) {
        this.x = x;
        this.y = y;
    }

    public static P470_18_8_Point getInstance(double x, double y) {
        return new P470_18_8_Point(x, y);
    }

    public double getX() {
        return x;
    }

    public void setX(double x) {
        this.x = x;
    }

    public double getY() {
        return y;
    }

    public void setY(double y) {
        this.y = y;
    }

    public String toString() {
        return "(" + x + "," + y + ")";
    }

}

circle类:

package com.Javastudy2;

import com.Javastudy2.point.*;

/**
 * @author Y.W.
 * @date 2018年7月10日 下午11:47:15
 * @Description TODO 编写一个程序,声明一个包,在另一个包中使用import语句访问使用,要求:
 *              (1)声明一个包point,其中定义Point类,包含x,y坐标,构造方法,获取x,y坐标及设置;
 *              (2)声明另一个包,导入包Point,其中在新包中定义Circle类,半径,构造方法,获取、设置半径。
 *              设计程序实现圆的实例化,并输出半径和圆心。
 */
public class P470_18_8_Circle {

    private double r; // 半径r
    private P470_18_8_Point point; // 圆心

    public P470_18_8_Circle(double x, double y, double r) {
        point = P470_18_8_Point.getInstance(x, y);
        this.r = r;
    }

    public double getR() {
        return r;
    }

    public void setR(double r) {
        this.r = r;
    }

    public void print() {
        System.out.println("半径为" + this.r + ",圆心为" + point);
    }
}

main方法:

package com.Javastudy2;

import com.Javastudy2.P470_18_8_Circle;

/**
 * @author Y.W.
 * @date 2018年7月11日 上午12:03:02
 * @Description TODO 编写一个程序,声明一个包,在另一个包中使用import语句访问使用,要求:
 *              (1)声明一个包point,其中定义Point类,包含x,y坐标,构造方法,获取x,y坐标及设置;
 *              (2)声明另一个包,导入包Point,其中在新包中定义Circle类,半径,构造方法,获取、设置半径。
 *              设计程序实现圆的实例化,并输出半径和圆心。
 */
public class P470_18_8 {

    public static void main(String[] args) {
        P470_18_8_Circle circle = new P470_18_8_Circle(1, 1, 3); // 声明对象并实例化
        circle.print();
    }

}

运行结果:

运行结果

记于2018年7月11日00:45:11
By Yvan

你可能感兴趣的:(2018-07-10学习小结 - 包及访问权限7)