首先new Yard() 是新建一个Yard的实例
黑龙江ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为创新互联的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:13518219792(备注:SSL证书合作)期待与您的合作!
你在Snake里new一个 在Start里又new一个
可是这条蛇是属于哪个一个Yard呢
如果按原先作法Snake s = new Snake(this)可以在new Yard的时候把自身传给对应的那条蛇
就是马老师讲的--持有对方引用 用起来很方便
********************************
如果你非得在Snake中直接new 可以按下面的改试试看吧
1. 在Snake.java里添加一个空的构造方法:
Yard y;
snake(){
.......... .........
.......... .........
this.y = new Yard();
}
2. 在Yard.java里把Snake s = new Snake(this)改成 static Snake s = new Snake();
3. 在Start.java把第一句Yard y = new Yard();换成 Yard y = Yard.s.y;
这样用的话显然很不好使
java 作图 不一定要继承JFrame或者Frame,但是所有的组件必须放到顶层容器,Java Swing 有三种顶层容器
JFrame:用来设计类似于Windows系统中的窗口形式的应用程序。
·JDialog:和JFrame类似,只不过JDialog是用来设计对话框。
·JApplet:用来设计可以在嵌入在网页中的Java小程序。
而且你的代码 Kosese001既然继承了JFrame 那么他的构造就是个JFrame ,你下面又new JFrame("坦克大战");这样何必继承,直接在构造里面实现操作就可以把Kosese001中,
你的背景色没有显示出来,是由于JFrame 是顶层容器,它默认的布局会设置它的背景色,除非你在前面 加上 jfrmMain.setLayout(null);使得布局变成空布局,下面的jfrmMain.getContentPane().setBackground(Color.green); 才会生效,或者你可以通过设置JFrame上组件的背景色来完成同样的效果 比如 mypaint = new MyPaint();
mypaint.setBackground(Color.green); 还有啥不懂的 可以问我。
晕了..这..很基础...不过从你提的问题来看,我个人觉得很难和你讲透彻!
你的代码里面p有两个位置
double getDistance(Point p) :
这个p是一个函数参数类型的变量他指的的是Point 对象,
也就是说,你可以直接理解成一个方法里面被传入的对象p
Point p = new Point(1.0, 2.0, 3.0);//这里也有一个p,
这个p是指向一个Point实例对象
实在不好解释...你还的看看基础吧....不然我可能觉得你看不懂我在说什么!
p.x 就是p这个对象里面的x属性!
(x - p.x) 意思当前对象x-传入进来对象的x
(p.x- x ) 传入对象的x-当前对象 x
至于你说结果一样,完全取决你传什么数!