首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

入门·小结

2012-08-24 
入门·总结1.构造器和方法的区别?构造器:(1).没有返回类型;(2).构造器必须与类名相同(一般是个名词,一般大

入门·总结
1.构造器和方法的区别?

构造器:
                                    
(1).没有返回类型;                             
(2).构造器必须与类名相同(一般是个名词,一般大写);
(3).也可以传入参数;
(4).构造器可以通过this关键字调用构造器和方法;

方法:
(1).有返回类型,其中返回类型又分有返回值和无返回值(void);
(2).一般是个动词,一般是小写;
(3).分为有参方法和无参方法;
(4).一般方法不能调用构造器;

2.值传递和引用传的区别.

值传递:

仅将对象的值传递给目标对象,即传递内存中的值,如果改变目标对象,原始不会因此而改变。

引用传递:

将对象在内存中的地址传递给目标对象,就相当于使目标对象和原始对象对应同一个内存存储空间。

如果对目标对象进行修改,内存中的数据也会改变。

(类似于C中的传地址)

例如:

Student a1=new Student();

Student a2=a1;

此时是引用传递,如果对a2进行操作即相当于对a1进行操作,即a2与a1是同一对象的不同名字了。

而在值传递中,a2会分一个与a1不同的空间,此时改变a2,不会对a1有影响。



3.重载(overLoad)和重写(overWrite)的区别.

方法的重载(在一个类中,没有继承关系):

(1)定义多个同名(方法的名字要相同!),但参数类型和参数个数不同。

(3)可以改变返回值的类型,即返回值类型可以相同也可以不同。

(2)重载是一个类中多态性的一种表现

方法的重写(前提:要有继承关系):

(1)子类中保持方法的定义不变,方法内部实现父类的不同

(2)重写是父类与子类之间多态性的一种表现

4.继承父类和实现接口的区别?

(1)一个类只能继承一个父类。但是,一个类可以实现多个接口。

(2)继承一般继承的是事物的属性,如:姓名,年龄,性别等,而接口的实现一

般是继承事物的行为,如:行走,学习,游泳等



---------------------------------------------------

完成一个小应用:

输入正确的用户名,密码--->显示主界面--->可以在主界面上画三角形

------------------------------------->

package Draw2;import java.awt.FlowLayout;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JTextField;public class DrawJFrame {public static void main(String[] args) {DrawJFrame jf=new DrawJFrame();jf.showJFrame();}public void showJFrame(){JFrame jf=new JFrame();jf.setTitle("画板登陆");jf.setSize(330,200);jf.setDefaultCloseOperation(3);//关闭窗体是程序退出jf.setLocationRelativeTo(null);//居中显示                      //流式布局管理器FlowLayout fl=new FlowLayout();jf.setLayout(fl);//添加组件JLabel la=new JLabel("账号");JTextField te=new JTextField(20);JLabel labe=new JLabel("注册");jf.add(la);jf.add(te);jf.add(labe);JLabel lab=new JLabel("密码");JTextField tex=new JTextField(20);JLabel l=new JLabel("找回");jf.add(lab);jf.add(tex);jf.add(l);//按钮JButton bu= new JButton("登陆");jf.add(bu);//创建动作监听器DrawListener dr=new DrawListener(te,tex);bu.addActionListener(dr);jf.setVisible(true);}}


======================================================================

package Draw2;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import javax.swing.JFrame;

import javax.swing.JTextField;

public class DrawListener implements ActionListener{

//文本框中的内容是JTextField型的

private JTextField te;

private JTextField tex;



//构造器,将文本框中的内容传入

public DrawListener(JTextField te,JTextField tex){

this.te=te;

this.tex=tex;

}

public void actionPerformed(ActionEvent e) {

String n=te.getText();

String s=tex.getText();



if(n.equals("hupengwei")&&s.equals("921010")){

//创建画板界面

JFrame jf=new JFrame();

jf.setTitle("恭喜您,登陆成功!");

jf.setSize(500,500);

jf.setDefaultCloseOperation(2);//关闭窗体是程序退出

jf.setLocationRelativeTo(null);//居中显示



jf.setVisible(true);



//画布要在监听器前加!否则报错!~~

//添加画布

java.awt.Graphics g = jf.getGraphics();

//鼠标监听器

DrawListener1 dl=new DrawListener1(g);

jf.addMouseListener(dl);





}

else{

javax.swing.JOptionPane.showMessageDialog(null, "你输入的账号或者密码错误,请重新输入!");

}



}

}

======================================================================

package Draw2;

//接口的实现

import java.awt.event.MouseEvent;

import java.awt.event.MouseListener;

public class DrawListener1 implements MouseListener{

private int clickcount;

private int x1,y1,x2,y2,x3,y3;

private java.awt.Graphics g;



         //用构造器传入画布的对象

public DrawListener1(java.awt.Graphics g){

this.g=g;

}

@Override

public void mouseClicked(MouseEvent e) {



}

@Override

public void mouseEntered(MouseEvent e) {



}

@Override

public void mouseExited(MouseEvent e) {



}

@Override

public void mousePressed(MouseEvent e) {

                  //创建一个鼠标计数器,记录点击的次数,并记录该点的坐标

if(clickcount==0){

x1=e.getX();

y1=e.getY();

clickcount++;

}

else if(clickcount==1){

x2=e.getX();

y2=e.getY();

clickcount++;

}

else if(clickcount==2){

x3=e.getX();

y3=e.getY();

clickcount=0;

                           //在画布上画线

g.drawLine(x1, y1, x2, y2);

g.drawLine(x2, y2, x3, y3);

g.drawLine(x1, y1, x3, y3);

//输出三点的坐标

                            System.out.println  ("x1:"+x1+"y1:"+y1+"x2:"+x2+"y2"+y2+"x3:"+x3+"y3:"+y3);

}







}

@Override

public void mouseReleased(MouseEvent e) {

//System.out.println("放开");



}

}

热点排行