学习
18.7
- 封装性实际上需要通过三个权限实现:private、default、protected。个人开发常用一般就两个。
(1)只要是定义属性不用思考直接写上private;
(2)只要是定义方法不用思考直接写上public。
- 什么是设计模式?
在程序设计时,逐渐形成一些典型问题和问题的解决方案,这就是软件模式;每一个模式描述了一个在我们程序设计中经常发生的问题,以及该问题的解决方案;当我们遇到模式所描述的问题,就可以直接用相应的解决方案去解决这个问题,这就是设计模式。
- 多例设计模式的特点
(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
网友评论