JAVA

JAVA学习笔记

基础语法

基本与C/C++一致,可速通

面向对象

什么是对象

所谓对象可以通俗理解为一件东西和他所具有的属性叫做一个对象

例如·:人(东西):性别、年龄、爱好……(属性)

​ 书(东西):名字、类型、页数……(属性)

像上面这些都是对象,类似与C/C++里面的结构体

比如说我现在像统计班级学生信息做一个表格,我就应该先创建一个学生对象,而不是开一堆数组,像这样:

1
2
3
4
5
6
public class Student {
String name; // 姓名
int age; // 年龄
Boolean sex; // 性别
double score; // 成绩
}

构造器

构造器是用来创建对象并初始化对象属性的特殊方法,构造器名一定与类名相同,分为有参构造器和无参构造器

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
public class Student {
String name; // 姓名
int age; // 年龄
Boolean sex; // 性别
double score; // 成绩
// 构造方法
// 无参构造方法
public Student(){

}
// 有参构造方法
public Student(String n, int a, Boolean s, double sc){
name = n;
age = a;
sex = s;
score = sc;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
public class Test {
static void main() {
Student s1 = new Student();
Student s2 = new Student("小王", 18, true, 90.0);
System.out.println(s1.name);
System.out.println(s2.name);
System.out.println(s2.age);
System.out.println(s2.sex);
}
}
/*
null
小王
18
true
*/

this关键字

this 就像对象的 “自我介绍”:当对象内部需要用自己的属性 / 方法时,用 this 指代自己,避免和局部变量重名;也能在构造方法里调用同对象的其他构造方法,让代码更简洁。

1
2
3
4
5
6
7
public class Student {
String name;
public void showMom(String name){
// this的作用是访问当前对象
System.out.println(this.name +"的妈妈:" + name);
}
}
1
2
3
4
5
6
7
8
9
public class Test {
static void main() {
Student s = new Student();
s.name = "小王";
s.showMom("秀娟");

}
}
// 小王的妈妈:秀娟

封装

面向对象的三大特征:封装、继承、多态

封装的核心设计要求同时也是Java的核心:合理隐藏、合理暴露

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
public class Student {
// 为什么要隐藏?
// 因为如果不然隐藏,那么其他类就可以随意访问,那么就会造成数据不安全,比如说我可能把年龄赋值成-19岁
private String name;
private int age;
private Boolean sex;
private double score;
// 合理暴露
// 隐藏后我们需要暴露一些方法,才能操作数据
// 输入姓名
public void setName(String name){
this.name = name;
}
// 获取姓名
public String getName(){
return name;
}
}
1
2
3
4
5
6
7
8
public class Test {
static void main() {
Student s = new Student();
s.setName("小王");
System.out.println(s.getName());
}
}
// 小王

实体类

实体类是一种特殊的类:

要求1:类中的成员变量全部私有,并提供public修饰的getter/setter方法

要求2:类中需要提供至少一个无参构造器

static - 静态变量

面向对象高级语法

继承

多态

final

单例类

枚举类

抽象类

接口

代码块

内部类

函数式编程

常用API

GUI编程

项目实战

人事系统

游戏开发 — 数字华容道

JAVA加强

异常

泛型

Collection集合

List集合

Set集合

Map集合

Stream流

文件

字符集

IO流

多线程

网络编程

项目实战 — 即时通信

JAVA高级技术

Junit

反射

注解

代理