概述
到此处我们面向对象就基本完成;
1、变量 – 数据类型(8大数据类型、复杂数据类型)
2、流程控制 顺序 分支(if..else switch..case) 循环(for while do…while)
3、数组、函数 (减少代码的重复编写)
3、面向对象 – 抽象 – 【方法】 – 封装– 继承 –多态 (关键字)– 抽象类–接口
方法的重写、重载、构造器、static、final 、super、this,4个访问修饰符public、private。
4、javaSE的学习、
图形界面。
常用类、学会API
操作硬盘、网络通信、复杂数据结构、。。。。。
GUI:图形用户界面,
CPU:指令处理器
GPU:图形指令处理器
JFrame:组件 –> 类
创建对象调用构造器-构造方法。
所有的类我们都可以使用默认构造方法,
然后创建对象,调用方法,完成创建
//窗体
-- 宽高
JFrame jf = new JFrame();
//设置宽高
jf.setSize(430, 330);
//设置初始位置
jf.setLocation(400, 200);
//设置标题
jf.setTitle("QQ");
//设置关闭按钮事件
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
文字组件: JLabel
//创建文字
JLabel zhanghao = new JLabel(“账号”);
JLabel mima = new JLabel(“密码”);
按钮组件:
JButton btu_login = new JButton(“登录”);
JButton btu_reg = new JButton(“注册”);
jf.add(btu_login);
btu_login.setBounds(100, 170, 100, 30);
文本框组件:
JTextField user = new JTextField();
JTextField pwd = new JTextField();
jf.add(user);
user.setBounds(100, 60, 200, 30);
设置布局方式: 默认边界布局:同安卓、ios,
改成空布局
//设置为空布局,好加载我们的组件
jf.setLayout(null);
事件: javascript里面讲解过事件,道理一样
btu_login.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String userName = user.getText();
String password = pwd.getText();
System.out.println(“userName=”+userName);
System.out.println(“pwd = ” + password);
if(userName == “admin” && password==”admin”) {
System.out.println(“登录成功”);
}else {
System.out.println(“登录失败,,,,”);
}
}
});
此时我们发现,无论如何都是登录失败,问题出在字符串的比较上,此时我们对String类进行讲解,
此处注意:
对于基本数据类型
我们用== 进行比较
对于复杂数据类型,我们需要调用equals进行比较,因为equals是比较的对象里面的内容是否相等。
对于String来说,我们在内存中会将字符串当做常量存储在静态常量池,代码如下:
int num = 10;
Person p = new Person();
String name1 = "zhangsan";
String name2 = "zhangsan";
System.out.println(name1 == name2);
System.out.println(name1.equals(name2));
String name3 = new String("zhangsan");
String name4 = new String("zhangsan");
System.out.println(name3 == name4);
System.out.println(name3.equals(name4));
内存图如下:
![这里写图片描述](https://img-blog.csdn.net/20180605153959605?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3NreTI3NDU0ODc2OQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
所以对于String来说,内存的理解很重要!
对于String类来说
截取字符串,查询字符串,包含字符串,替换内容等方法都很重要,
1、equals方法
equals是object定义的专门用于比较大小的方法。对于我们来说,如果我们自己定义了一个想要通过equals来比较是否相等,我们需要重写自己类的equals方法,
public class Person {
private String name;
private int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
//重写equals
实现名字和年龄相同才返回true
public boolean equals(Object obj) {
Person p1 = (Person) obj;
boolean flag = false;
if(p1.getName().equals(this.getName())) {
flag = true;
}
return flag;
}
}
2、toString方法
toString方法是一个返回该对象数据的方法,
public String toString() {
return "Person [name=" + name + ", age=" + age + "]";
}
当我们访问对象的时候,默认是调用了toString方法。
3、String和基本数据类型转换
String info = "" + 19;
Sring info 2 = String.valueof(18);
4、8大基本数据的包装类
我们在代码中将基本数据类型转String是简单的,但是String中没有提供方法可以吧一个String转成基本数据类型,所以java就为每一个基本数据类型提供了一个包装类, double == Double
logn = Logn
int = integer
这些包装类提供了一个将String转成基本数据类型的方法。我们可以调用,从继承关系我们可以发现,所有的基本数据类型double继承自Number类。
5、正则表达式:根据某一规则去判断一个字符串是否匹配。又可以理解成为一门独立的编程语言,只是针对字符串进行操作。
String info = "A";
//"a"
//判断是0-9的数字
System.out.println(info.matches("\d"));
//判断小写字母
System.out.println(info.matches("\p{Lower}"));
//判断大写字母
System.out.println(info.matches("\p{Upper}"));
info = “13599996666”;
System.out.println(info.matches(“((136)|(135)|(137)|(187)|())d{8}”));
System.out.println(info.matches(“(^(1)[356789])d{9}$”));
info = “中华人名共和国”;
System.out.println(info.matches(“[u4E00-u9FA5s]+”));
“`
正则表达式是一组规则,网上提供了大部分的模板,但是有部分是错误的,使用的时候可以测试一下。
最后
以上就是现实洋葱为你收集整理的javaSE之 swing + String类+正则表达式的全部内容,希望文章能够帮你解决javaSE之 swing + String类+正则表达式所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复