前言
根据大二Java基础入门课程(黑马程序员著)的学习总结,本文章主要内容为Java在与C语言相比后的不同之处和本人已学知识点,故全篇不作详细讲解。内容仅作为个人笔记,以供参考。
一、Java开发入门
1.介绍
1、版本:Java SE:标准版;Java EE:企业版;Java SE:微型版
2、JDK:开发环境,包含JRE(运行环境,用户使用)、编译器等工具,Java开发需要在电脑配置系统环境。
—>Java环境配置
目录介绍
bin(binary)目录:存放可执行文件,javac.exe(编译器)、java.exe(运行工具)、jar.exe(打包工具)、javadoc(文档生成工具);
db目录:小型数据库;
include目录:C语言头文件(JDK由C语言与C++实现);
jre目录:运行环境根目录;
lib(library)目录:Java库文件。
3、工程创建:—>Eclipse创建流程
二、Java编程基础
1.知识点
对象:以类文件为类型的变量;
方法:类文件中的函数;
构造方法:方法名与类名相同,没有返回值,可以单独写return语句作为方法的结束,它会在类实例化对象时被自动调用;
重载:多个方法名相同、参数个数或参数类型不同的方法;
标记:相当于C语言中的goto;
子类和父类之间该方法属于谁/等号左边是谁,就优先用谁,没有则向上找;
子类的构造方法启动时,一定会先跑去启动父类的构造方法,等父类的构造方法执行完后,再去执行子类(本类)的构造方法。
—>!!子类和父类最全详解!!
2.关键字
Class:定义类文件,类名首字母大写;
this:解决一个类文件中的成员变量(全局变量)和方法中的局部变量冲突问题,调用一个类文件中的成员变量(全局变量),调用一个类文件中的成员方法(函数),调用一个类文件中的构造方法;
static:只能用于修饰成员变量(全局变量),不能用于修饰局部变量;一个类文件中用static修饰的方法可在用于不创建对象的情况下,直接通过“类名.方法”调用;
boolen / byte:布尔类型/字节类型;if语句和switch语句的判断条件可以是布尔类型;
abstract:修饰抽象类、抽象方法,包含抽象方法的类必须为定义为抽象类,形式:“pubic abstract void function();”,无需方法体;
assert:—>assert用法详解;
super:子类对父类重写后,再次访问父类原成员的关键字;
extends:实现继承的关键字,继承之后可以使用父类的方法, 也可以重写父类的方法,单继承;
implements:是实现多个接口, 接口的方法一般为空的, 必须重写才能使用 ,可多接口;
final:只能被设一次值,成员变量必须在声明处赋值,值和普通变量的设值一样,可以是对象、字符串、数字等,用于修饰值的表达式不变的变量;
interface:定义接口的关键字;—>接口详解
访问控制符关键字:private:当前类访问级别;default:包访问级别;protect:子类访问级别;public:公共访问级别;访问控制级别由高到低;—>访问控制符详解
“|”和“||”一起表示为逻辑与,“&”和“&&”一起表示为逻辑与;
数组:定义:数组类型[] 数组名 / 数组类型 数组名[] = new 数组类型[数组长度],new 数组类型[] {元素}, {数组元素1、数组元素2…},长度为n<==>多维数组行数为n;
其他关键字,运算符、变量和语句知识点参考—>C语言知识点,另有未学关键字在本文中不作记录。
注:该字节长度标准只是编译器内常见的标准,如有差异以实际为准
3.面向对象
定义类:[修饰符] class 类名 [extends 父类名] [implement 接口名]{…};继承(extends)父类,实现(implements)接口;类名为当前文件名;变量与方法在类里面定义;
object类:所有类的父类,默认自动继承,含常用方法;
抽象类:abstract修饰,含抽象方法的类必须为抽象类;
定义对象:类名 对象名称 = new 类名{};
引用对象成员:类名.变量/属性值,类名.方法;
实现封装:getXxx()方法:获取属性值;setXxx()方法:设置属性值;
继承:子类继承父类;
多态:多个子类继承抽象父类方法,每个子类可重写出不同的方法;
构造方法是类的一个特殊成员,它会在类实例化对象时被自动调用,可以有多个参数类型或个数不同的构造方法;
接口:[修饰符] interface 类名 [extends 父接口1、2…];interface修饰,一种特殊的抽象类,内部方法必须为抽象方法;
三、GUI
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class ChatWindow {
private static JComboBox<String> jComboBox;
private static void createAndShowGUI() {
/*设置消息显示*/
final JTextArea showArea = new JTextArea(20, 20);
showArea.setEditable(false);
/*创建滚动条*/
JScrollPane scrollPane = new JScrollPane(showArea);
/*设置输入框*/
final JTextField inputText = new JTextField(20);
/*创建发送按钮*/
JButton button = new JButton("发送");
/*消息内容监听器*/
ActionListener textListen = new ActionListener() {
public void actionPerformed(ActionEvent e) {
String content = inputText.getText();
if (content != null && !content.trim().equals("")) {
showArea.append("输入内容:" + content + "\n");
} else {
showArea.append("发送错误" + "\n");
}
inputText.setText("");
}
};
/*消息输入监听器的触发*/
button.addActionListener(textListen);
inputText.addActionListener(textListen);
/*创建面板与标签*/
JPanel panelFixed = new JPanel();
JPanel panelChoose = new JPanel();
/*字体标签*/
final JCheckBox italic = new JCheckBox("斜体");
final JCheckBox bold = new JCheckBox("加粗");
/*字体设置监听器*/
ActionListener fontListen = new ActionListener() {
public void actionPerformed(ActionEvent e) {
int mode = 0;
if (bold.isSelected()) {
mode += Font.BOLD;
}
if (italic.isSelected()) {
mode += Font.ITALIC;
}
showArea.setFont(new Font("宋体", mode, 18));
}
};
italic.addActionListener(fontListen);
bold.addActionListener(fontListen);
/*选择联系人*/
String []box = {"请选择分组", "菜鸟", "精英", "大牛"};
jComboBox = new JComboBox<>(box);
final JTextField name = new JTextField(20);
jComboBox.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String item = (String)jComboBox.getSelectedItem();
if ("请选择分组".equals(item)) {
name.setText("");
} else {
name.setText(item);
}
}
});
/*加入面板项*/
panelFixed.add(inputText);
panelFixed.add(button);
panelFixed.add(italic);
panelFixed.add(bold);
panelChoose.add(jComboBox);
panelChoose.add(name);
/*创建窗体框架*/
JFrame f = new JFrame("聊天界面");
f.setVisible(true);
f.setLocation(200, 100);
f.setSize(1000, 600);
/*加入窗口项*/
f.add(scrollPane, BorderLayout.CENTER);
f.add(panelChoose, BorderLayout.WEST);
f.add(panelFixed, BorderLayout.PAGE_END);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void main(String[] args) {
createAndShowGUI();
}
}
总结
Java语言相关博客网络资料已经较为齐全,以上仅为本人所学的知识总结,本文未涉及未学习到的知识点,其中链接网址仅作记录使用,如有侵权或内容有误,敬请联系斧正。若读者觉得本文对学习有所帮助,不妨Give a like,Respect!!!