课前复习:
参数传递的三种方法:
方法和变量
向对象中传入数据一般有两次机会,第一次机会是建立在对象时通过构造方法将数据传入,另一次机会就是在类中定义一系列的public的方法或者变量。然后再建立完对象后,通过对象实例逐个赋值。
构造器
回调函数
课中联系:
分形画图的代码
xn+1 = sin(a yn) + c cos(a xn)
yn+1 = sin(b xn) + d cos(b yn)
where a, b, c, d are variabies that define each attractor.
<!--EndFragment-->Java代码
package 画点;
import javax.swing.JFrame;
public class Point extends JFrame {
public void initUI(){
this.setSize(500,400);
this.setVisible(true);
java.awt.Graphics g = this.getGraphics();
//创建我们已经实现的监听器对象
Pointadd pa = new Pointadd(g);
//把监听器对象,加给界面
this.addMouseListener(pa);
}
public static void main(String[] args){
Point pt = new Point();
pt.initUI();
}
}
Java代码
package 画点;
import java.awt.Graphics;
import java.awt.event.MouseEvent;
//实现Mouse监听器,放开时画线
public class Pointadd implements java.awt.event.MouseListener{
private double a=1.5f,b=-1.8f,c=1.6f,d=0.9f,x1,y1,x2,y2;
private java.awt.Graphics g;//画布
public Pointadd(Graphics g){
this.g=g;
}
/**
* Invoked when a mouse button has been pressed on a component.
*/
public void mousePressed(MouseEvent e){
}
public void mouseReleased(MouseEvent e){
for(int i=0;i<100000;i++){
this.x2=Math.sin(a*y1)+c*Math.cos(b*x1);
this.y2=Math.sin(b*x1)+d*Math.cos(a*y1);
int x3=(int)(x2*170)+500;
int y3=(int)(y2*170)+400;
g.drawLine(x3, y3,x3,y3);
x1=x2;
y1=y2;
}
}
/**
* Invoked when the mouse enters a component.
*/
public void mouseEntered(MouseEvent e){
}
/**
* Invoked when the mouse button has been clicked (pressed
* and released) on a component.
*/
public void mouseClicked(MouseEvent e){
}
/**
* Invoked when the mouse exits a component.
*/
public void mouseExited(MouseEvent e){
}
}
课后感想:(容我矫情一下=。=)
后来又通过别的方法画其他的图形,突然感觉到代码的神奇,无法言语的神秘。在我的印象里,代码的复写总是冗长而无味的,因此一直望而生畏,觉得没有能力来应付这么复杂而无规律的代码,看着队友都在一个个眼睛发亮不停歇的敲代码,我无法体会其中的乐趣。因为自己总是在学习一件新事物的时候入门总是太慢,总是在学过之后才能体会到其中的真谛,从开始艰难的下定决心要走下去这条路,到现在一直被别人推着前进,从最初没有上进心到现在开始思考未来,开始知道要为自己争取一个未来。我不想给放纵自己一个冠冕堂皇的理由,比如心情不好,比如天气不好,比如时间不够,比如自己最近很疲惫。慢慢的开始规范自己,其实到现在也有好多地方模糊,不过既然选择了这条路,又有什么理由不走的精彩呢。人不逼自己一把,总不知道的自己潜在实力有多大~所以我要做一个文艺充满生活乐趣懂得幽默的技术女,彻底打破大家传统印象中对程序员的枯燥无味的定义。
参数传递的三种方法:
方法和变量
向对象中传入数据一般有两次机会,第一次机会是建立在对象时通过构造方法将数据传入,另一次机会就是在类中定义一系列的public的方法或者变量。然后再建立完对象后,通过对象实例逐个赋值。
构造器
回调函数
课中联系:
分形画图的代码
xn+1 = sin(a yn) + c cos(a xn)
yn+1 = sin(b xn) + d cos(b yn)
where a, b, c, d are variabies that define each attractor.
<!--EndFragment-->Java代码
package 画点;
import javax.swing.JFrame;
public class Point extends JFrame {
public void initUI(){
this.setSize(500,400);
this.setVisible(true);
java.awt.Graphics g = this.getGraphics();
//创建我们已经实现的监听器对象
Pointadd pa = new Pointadd(g);
//把监听器对象,加给界面
this.addMouseListener(pa);
}
public static void main(String[] args){
Point pt = new Point();
pt.initUI();
}
}
Java代码
package 画点;
import java.awt.Graphics;
import java.awt.event.MouseEvent;
//实现Mouse监听器,放开时画线
public class Pointadd implements java.awt.event.MouseListener{
private double a=1.5f,b=-1.8f,c=1.6f,d=0.9f,x1,y1,x2,y2;
private java.awt.Graphics g;//画布
public Pointadd(Graphics g){
this.g=g;
}
/**
* Invoked when a mouse button has been pressed on a component.
*/
public void mousePressed(MouseEvent e){
}
public void mouseReleased(MouseEvent e){
for(int i=0;i<100000;i++){
this.x2=Math.sin(a*y1)+c*Math.cos(b*x1);
this.y2=Math.sin(b*x1)+d*Math.cos(a*y1);
int x3=(int)(x2*170)+500;
int y3=(int)(y2*170)+400;
g.drawLine(x3, y3,x3,y3);
x1=x2;
y1=y2;
}
}
/**
* Invoked when the mouse enters a component.
*/
public void mouseEntered(MouseEvent e){
}
/**
* Invoked when the mouse button has been clicked (pressed
* and released) on a component.
*/
public void mouseClicked(MouseEvent e){
}
/**
* Invoked when the mouse exits a component.
*/
public void mouseExited(MouseEvent e){
}
}
课后感想:(容我矫情一下=。=)
后来又通过别的方法画其他的图形,突然感觉到代码的神奇,无法言语的神秘。在我的印象里,代码的复写总是冗长而无味的,因此一直望而生畏,觉得没有能力来应付这么复杂而无规律的代码,看着队友都在一个个眼睛发亮不停歇的敲代码,我无法体会其中的乐趣。因为自己总是在学习一件新事物的时候入门总是太慢,总是在学过之后才能体会到其中的真谛,从开始艰难的下定决心要走下去这条路,到现在一直被别人推着前进,从最初没有上进心到现在开始思考未来,开始知道要为自己争取一个未来。我不想给放纵自己一个冠冕堂皇的理由,比如心情不好,比如天气不好,比如时间不够,比如自己最近很疲惫。慢慢的开始规范自己,其实到现在也有好多地方模糊,不过既然选择了这条路,又有什么理由不走的精彩呢。人不逼自己一把,总不知道的自己潜在实力有多大~所以我要做一个文艺充满生活乐趣懂得幽默的技术女,彻底打破大家传统印象中对程序员的枯燥无味的定义。