1.包
包是用来分门别类的管理各种不同程序的,类似于文件夹,建包有利于程序的管理和维护。以下是注意事项:
- 如果当前程序中,要调用自己所在包下的其他程序,可以直接调用。(同一个包下的类,互相可以直接调用)
- 如果当前程序中,要调用其他包下的程序,则必须在当前程序中导包,才可以访问!导包格式:import 包名,类名
- 如果当前程序中,要调用Java提供的程序,也需要先导包才可以使用:但是java.lang包下的程序是不需要我们导包的,可以直接使用。
- 如果当前程序中,要调用多个不同包下的程序,而这些程序名正好一样,此时默认只能导入一个程序,另一个程序必须带包名访问。不然程序不知道是哪个包下的,所以不能同时导入。
2.String
java.lang.String 代表字符串 封装字符串数据 并对其进行处理
处理字符串的方法:1、创建对象2、封装字符串数据3、调string的方法
- 方式一:直接使用双引号
- 方式二:new string类,调用构造器初始化字符串对象
2.1 String常用方法
由于字符串对象存储的是地址,不能使用==比较,因为两个对象的字符串相等,但是不是指向一个地址空间就不一致,要用equals比较的。也可以忽略大小写。
2.2 String的注意事项
第一点
String对象的内容不可改变,被称为不可变字符串对象。
注意:只要是以“…”方式写出的字符串对象,会在堆内存中的字符串常量池中存储
结论:每次试图改变字符串对象实际上是新产生了新的字符串对象了,变量每次都是指向了新的字符串对象,之前字符串对象的内容确实是没有改变的,因此说string的对象是不可变的
第二点
只要是以“…”方式写出的字符串对象,会存储到字符串常量池,且相同内容的字符串只存储一份,但通过new方式创建字符串对象,每new一次都会产生一个新的对象放在堆内存中。
运算是不会放在常量池的都是放在堆里的
3.ArrayList
集合是一种容器,用来装数据的,类似于数组。
数组定义完成并启动后,长度就固定了,不可变很麻烦,集合大小可变,开发中用的更多。
可以使用泛型规范需要的类型
ArrayList<String> strings = new ArrayList<>();
strings.add("黑马");
strings.add("黑马");
strings.add("Java");
System.out.println(strings);
strings.add(1,"mysql");
System.out.println(strings);
System.out.println(strings.get(1));
System.out.println(strings.size());
System.out.println(strings.remove(2));
System.out.println(strings);
//默认删除第一次出现的对象
System.out.println(strings.remove("Java"));
System.out.println(strings);
System.out.println(strings.set(1, "JK"));
System.out.println(strings);
删除集合中所有含有某个
ArrayList<String> list = new ArrayList<>();
list.add("Java入门");
list.add("宁夏枸杞");
list.add("黑枸杞");
list.add("人字拖");
list.add("特级枸杞");
list.add("枸杞子");
System.out.println(list);
deleteProduct2(list);
System.out.println(list);
}
//方式一:每次删除一个数据后,就让i往左边退一步
public static void deleteProduct1(ArrayList<String> strings) {
for (int i = 0; i < strings.size(); i++) {
if (strings.get(i).contains("枸杞")) {
System.out.println(strings.remove(i) + "已删除");
i--;
}
}
}
//方式二:从集合的后面倒着遍历并删除
public static void deleteProduct2(ArrayList<String> strings) {
//方式一:每次删除一个数据后,就让i往左边退一步
for (int i = strings.size()-1; i >=0; i--) {
if (strings.get(i).contains("枸杞")) {
System.out.println(strings.remove(i) + "已删除");
}
}
}
4.GUI
Graphical User Interface(图形用户接口)用图形的方式,来显示计算机操作的界面
- java.awt包:Abstract Window ToolKit(抽象窗口工具包),需要调用本地系统方法实现功能,属重量级控件,不推荐
- javax.swing 包:在awt的基础上,建立的一套图形界面系统,提供了更多的组件,而且完全由|ava实现。增强了移植性,属轻量级控件,推荐
- 组件:是具有图形表示的对象,该图形表示可以显示在屏幕上并且可以与用户交互
- 基本组件
- JButton:按钮
- JLabel:文本/图片
- JTextField:文本框 单行 JPasswordField密码框
- JTextArea:文本域 - 容器组件 容器组件.add(基本组件)
-
Window
-
Frame
- JFrame -
Panel
- JPanel
-
- 基本组件
4.1 JFrame
是一个顶层窗口,构造方法 JFrame():构造一个最初不可见的新窗体
成员方法
- void setVisible(boolean b):显示或隐藏此窗体具体取决于参数b的值
- void setSize(int width,int height):调整此组件的大小,使其宽度为width,高度为height,单位是像素
- JFrame(常用设置)
- void setritle(string title);设置窗体标题
- void setLocationRelativeTo(null);设置窗体位置在中央弹出
- void setDefaultcloseoperation(3);设置窗体关闭停止程序
- void setAlwaysonTop(true);设置窗体置顶
JFrame jf = new JFrame();
jf.setTitle("百度一下,你就知道");
jf.setsize( width:400, height: 300);
jf.setDefaultClose0peration(3);
jf.setLocationRelativeTo(null);
jf.setAlwaysOnTop(true);
//设置窗体可见
jf.setVisible(true);
4.2 JButton
- 构造方法JButton(String text):创建一个带文本的按钮
成员方法 - void setSize(int width,int height):设置大小
- void setLocation(intx,inty):设置位置(x坐标,y坐标)
- void setBounds(int x,int y, int width,int height):设置位置和大小
- 取消窗体默认布局:窗体对象.setLayout(null);
- 把按钮添加到窗体:窗体对象.add(按钮对象);
4.3 JLabel
- 短文本字符串或图像的显示区域
- 构造方法JLabel(String text):使用指定的文本创建JLabel实例
- JLabel(lconimage):使用指定的图像创建jLabel实例
- Imagelcon(Stringfilename):从指定的文件创建
- lmagelcon文件路径:绝对路径和相对路径
- 绝对路径:完整的路径名,不需要任何其他信息就可以定位它所表示的文件例如:D:\ldeaProjects\javase code\mn.png
- 相对路径:必须使用取自其他路径名的信息进行解释例如:images\mn.png
- 成员方法
- void setBounds(intx,inty,int width,int height):设置位置和大小
4.4 聊天室
窗体大小为400*300,标题为用户登录