1.接口: 接口是属于类,它是一个特殊类
接口中的属性特点:1.定义的时候必须初始化
2.定义属性必须定义为常量
接口中方法特点:接口中的所有方法都是没有方法体的方法,也就是抽象方法
代码:public interface Xad{//定义一个接口Xad
public final static String name="乌龟";//定义常量属性name并赋值为“乌龟”
public void xad();定义一个抽象方法(没有方法体)eat()
}
public interface Drink{//定义一个接口Drink
public fanal static String name="兔子";//定义常量属性name并赋值为“兔子”
public void drink();定义一个抽象方法drink()
}
2.接口的实现:
接口是不能实例化的,如果要实例化接口:创建一个子类继承接口,实例化子类对象并自动转型为接口类型
实现接口的时候,必须实现接口中的所有抽象方法
代码::public interface Xad{//定义一个接口Xad
public final static String name="乌龟";//定义常量属性name并赋值为“乌龟”
public void xad();定义一个抽象方法(没有方法体)eat()
}
public class Xwugui implements Xad{//定义一个类Xwugui实现Xad接口
public void xad(){//实现接口中xad()方法
System.out.println(Xad.name+"正在下蛋");}
}
3.接口的继承:接口属于类,那么它可以被其他的接口所继承,一个接口可以继承多个接口
代码:public interface Xad{//定义一个接口Xad
public final static String name="乌龟";//定义常量属性name并赋值为“乌龟”
public void xad();定义一个抽象方法(没有方法体)eat()
}
public interface Drink{//定义一个接口Drink
public fanal static String name="兔子";//定义常量属性name并赋值为“兔子”
public void drink();定义一个抽象方法drink()
}
public interface God extends Xad,Drink{//定义一个接口God继承自接口Xad和Drink
}
4.抽象类:指介于接口和类之间的一种类;特点:方法可以是普通方法也可以是抽象方法,
抽象类中的方法必须用abstract修饰
代码:public abstract class Mdd{//定义一个抽象类Mdd
public abstract void go();//定义一个抽象方法go()
public void fun(){//定义一个普通方法fun()
}
}
5.监听器的实现:
代码:对qq登陆界面中的“登陆按钮”设置监听器
qq登陆界面代码:public class Login {
public static void main(String[] args) {//程序入口
Login l = new Login();//实例化一个Login类的对象
l.initUI();//调用显示界面的方法
}
public void initUI() {//定义一个初始化界面的方法
javax.swing.JFrame jf = new javax.swing.JFrame("QQ登录界面");// 实例化一个JFrame类的对象
jf.setTitle("简单登录界面");// 设置窗体的标题
jf.setSize(300, 200);// 设置窗体的大小
jf.setLocationRelativeTo(null);// 设置窗体剧中显示
jf.setDefaultCloseOperation(3);// 设置窗体关闭的时候退出程序
jf.setResizable(false);// 设置禁止用户最大化窗体。
java.awt.FlowLayout fl = new java.awt.FlowLayout();
//实例化一个BorderLayout类的对象
jf.setLayout(fl);//给窗体设置一个边框布局类的对象
javax.swing.JLabel lbl1Name = new javax.swing.JLabel("账号:");// 实例化一个账号标签类的对象
jf.add(lbl1Name);// 将账号标签类的对象添加到窗体上
javax.swing.JTextField txt1Name = new javax.swing.JTextField(20);//实例化一个账号输入文本框类的对象
jf.add(txt1Name);//把账号输入文本框的对象添加到窗体上
javax.swing.JLabel lbl2Name = new javax.swing.JLabel("密码:");//实例化一个密码标签类的对象
jf.add(lbl2Name);//把密码标签对象添加到窗体上
javax.swing.JPasswordField txtName = new javax.swing.JPasswordField(20);//实例化一个密码输入文本框类的对象
jf.add(txtName);//把密码输入文本框的对象添加到窗体上
javax.swing.JComboBox jName=new javax.swing.JComboBox();//实例化一个下拉框类的对象
jf.add(jName);//把下拉框的对象添加到窗体上
javax.swing.JCheckBox che1Name=new javax.swing.JCheckBox("记住密码");//实例化一个下拉框类的对象
jf.add(che1Name);
javax.swing.JCheckBox che2Name=new javax.swing.JCheckBox("自动登录");//实例化一个下拉框类的对象
jf.add(che2Name);//把下拉框的对象添加到窗体上
javax.swing.JButton btnLogin = new javax.swing.JButton("登录");//实例化一个登陆按钮类的对象
jf.add(btnLogin);//把登陆按钮对象添加到窗体上
javax.swing.JButton btn1Login = new javax.swing.JButton("设置");//实例化一个设置按钮类的对象
jf.add(btn1Login);//把设置按钮对象添加到窗体上
jf.setVisible(true);// 设置窗体为可见
ActionListener listen = new ButtonListener(txt1Name,txtName);//创建监听器对象
btnLogin.addActionListener(listen);//把监听对象listen添加到对象btnLogin上
}
}
public class ButtonListener implements ActionListener{//定义一个监听器ButtonListener继承自ActionListener
javax.swing.JTextField text1Name;//定义一个JTextField类的对象 text1Name;
javax.swing.JPasswordField txtName;//定义一个JPasswordField类的对象 txtName;
public ButtonListener(javax.swing.JTextField text1Name,javax.swing.JPasswordField txtName){//定义一个ButtonListener类的一个构造方法
this.text1Name = text1Name;
this.txtName = txtName;
}
public void actionPerformed(ActionEvent e){
String name = text1Name.getText();//获取账号输入框中的文本,并存入变量name中
String pwd = txtName.getText();//获取密码输入框中的文本,并存入变量pwd中
if("zhangsan".equals(name)&&"12345".equals(pwd)){//判断name是zhangsan并且pwd是12345
System.out.println("恭喜登陆成功");
}
else{
System.out.println("您输入的用户名或者密码错误,请重新输入");
}
}
}