Java初步学习记录

Java初学

初学要点记录

类:结构体的升级版

结构体是一种构造数据类型,可以包含不同的成员,每个成员的数据类型可以不一样;可以通过结构体来定义结构体变量,每个变量拥有相同的性质

类的成员不但可以是变量----对象,还可以是函数(方法)

构造方法

通过关键字new来完成内存空间的分配,类只起到说明作用,不占用空间

在一个类,没有定义构造方法,默认隐式声明一个无参数的构造方法。创建对象new的后面调用的就是构造方法

Student stu = new Student()

public class Student{
    public Student(){
    }
}
构造方法与一般方法的区别
  1. 构造方法的名字必须与类名一样
  2. 构造方法不用声明返回值类型,但一定有返回值,返回值的类型就是方法名(构造方法的名字是类名,一个数据类型)

方法的重载

方法重载:

在一个类中可以定义多个方法名相同,但是参数个数、类型或顺序不一样的方法

优点:

调用时根据实际情况灵活选择

public calss Student{
	//无参
	public Student(){
    }
    //传入名字参数,初始化name属性值
    public Student(String name){
    	this.name=name;
    }
}
注:如果重载了构造方法,则默认的构造方法失效,如果还想使用默认的构造方法,必须要显示声明

Swing界面开发

package com.lyq0925.UI;
import java.awt.Dimension;	// 尺寸类
import java.awt.FlowLayout; // 布局
import javax.swing.ImageIcon;//图片
import javax.swing.JButton;  //按钮
import javax.swing.JFrame;   //窗体
import javax.swing.JLabel;   //标签
import javax.swing.JPasswordField;//输入框-密码
import javax.swing.JTextField;//输入框-文本

public class DrawUI {
//程序入口
   public static void main(String[] args)
   {
	   DrawUI draw = new DrawUI();
	   draw.showUI();
   }
	public void showUI()
	{
//		步骤:
//		1、创建一个窗体
		JFrame jf = new JFrame();
//		2、设置窗体的属性	
//	标题 
		jf.setTitle("标题");
//	尺寸
		jf.setSize(300,500);
//	关闭,否则就是一个假的关闭
		jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
				
//		3、设置布局 - 流式布局 
	    FlowLayout fl = new FlowLayout();
		jf.setLayout(fl);
//		4、添加组件
//				1、创建组件对象
		//按钮
		JButton button1 = new JButton("登录");
		//输入文本框
		JPasswordField password = new JPasswordField();
		JTextField text = new JTextField();
		//图片
		ImageIcon  image = new ImageIcon ("img/img0.jpeg");
		//标签
		JLabel img = new JLabel(image);
		JLabel text1 = new JLabel("账号:");
		JLabel text2 = new JLabel("密码:");
		
//		        2、设置组件对象的属性 
		Dimension dim = new Dimension(200,10);
		Dimension dim1 = new Dimension(100,100);
		img.setPreferredSize(dim1);
		password.setPreferredSize(dim);
		text.setPreferredSize(dim);
		
//	            3、添加到窗体上 
	    jf.add(img);
	    jf.add(text1);
	    jf.add(text);
	    jf.add(text2);
	    jf.add(password);
	    jf.add(button1);
//	    可视化 // 需要放在组件之后 
		jf.setVisible(true);
	}
}

类的继承

注:子类特有的方法一定是子类类型的对象才能调用,转成父类类型后不能调用
多态

由于继承与重写相同类型对象调用相同方法,结果可能不同(方法重写)

接口

前面的界面按钮点击是没有反应的,要想要按钮响应点击,加入动作监听器

事件: 按钮被点击
ActionEvent 动作事件

监听: 由监听机制 监听按钮是否被点击
ActionListener 动作监听器(按钮 菜单 … )

JButton.addActionListener(ActionListener l)方法可以添加监听

参数类型ActionListener是系统的一个接口类,不可以创建对象,所以我们需要自己写一个类实现此接口(接口方法没有方法体,需要重写)

使用接口的方法---------实现 :implements
格式: public class 类名 implements 接口名{ }
1、必须要实现接口中所有的抽象方法为实体方法
2、可以直接使用接口中的常量
3、这个类的对象可以自动将类型转为接口类型

UIListener.java

package com.lyq0925.UI;
//  实现 implements 
//	格式: public class 类名 implements 接口名{ }

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JOptionPane;
import javax.swing.JTextField;

public class UIListener implements ActionListener  {
	@Override
	public void actionPerformed(ActionEvent e) {
	System.out.println("点击")
	}
}

DrawUI.java 中加入

UIListener ls = new UIListener();
button.addActionListener(ls);

这样监听器就完成了,我们可以使用监听器判断账号密码是否输入正确

UIListener.java 中加入

package com.lyq0925.UI;
//  实现 implements 
//	格式: public class 类名 implements 接口名{ }

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JOptionPane;
import javax.swing.JTextField;

public class UIListener implements ActionListener  {

	JTextField namein = null;//先建立一个空的对象,在UIDraw中创建UIListener对象,获取UIDraw输入框中的值
	JTextField password = null;
	@Override
	public void actionPerformed(ActionEvent e) {
		
		String nametext = namein.getText(); //getText() 获取值
		String passwordtext = password.getText();
		
		if(nametext.equals("小明")&&passwordtext.equals("123456")) {
			System.out.println("账号正确");	
		}
//使用JOptionPane类,来实现弹出一个窗口
		else if(nametext.equals("")||passwordtext.equals("")) {
			
			JOptionPane.showMessageDialog(null, "信息不完整", "错误", JOptionPane.ERROR_MESSAGE);
		} 
		else
		{
			JOptionPane.showMessageDialog(null, "账号密码错误", "错误", JOptionPane.ERROR_MESSAGE);
		}
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值