Java基础 | 类与对象

1.核心思想

  1. 类及类的成员:属性、方法、构造器;代码块、内部类
  2. 三大特征:封装性(encapsulation) 继承性(inheritance) 多态性(polymorphism) 抽象性(abstract)
  3. 关键词:static this super final interface package import sychronized等等

1.1思想特点

  1. 是一种更符合我们习惯思想的思想可以将复杂的事情简单化
    把我们从执行者变成了指挥者(角色发生了转换)
  2. 开发:就是不断地创建对象,使用对象,指挥对象做事情
  3. 设计:其实就是在管理和维护对象之间的关系

1.2万事万物皆对象

  • Java语言范畴中,把功能,结构等等封装到类里面,再通过类的实例化,来调用具体的功能或者结构。
  • 涉及到Java和前端html,和后端数据库交互时,前后端的结构再Java层面交互时,都体现为类或对象。

2.类与对象

  1. 首先通过写一个类,然后在类里面不断地去增加属性和方法,并不断的去完善它。
  2. 然后需要用这个类的时候只需去创建它的对象,然后调用里面写好的方法和属性即可。
  • 属性=成员变量=field=域
  • 方法=成员方法=函数=method
  • 创建类的对象=类的实例化

2.1代码使用体现

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
//1.创建类
class student{
//2.设计类的成员
int age;
public void study(){
System.out.println("study happy");
}
}

public static void main(String[] args){
//3.创建类对象
student stu = new student();
//4. 通过对象.属性/对象.方法调用对象的结构
stu.age=17;
stu.study();
}

2.2.匿名对象

  • 调用方法仅仅是调用一次的时候
  • 好处:节省代码
  • 调用多次不适合.匿名对象调用完毕就是垃圾.可以被垃圾回收器回收。
  • 匿名对象可以作为实际参数传递。
  • 匿名对象可以调用属性,但是没有意义,应为调用后就变成垃圾
  • 如果有需要还是用有名对象
  • 方法,循环,判断语句同样使用在面向对象中

3.变量对比

3.1局部|成员

  1. 在类中声明的位置不同
    • 成:声明在在类中{}内
    • 局:声明在方法内、方法形参、代码块、构造器形参、构造器内部的变量
  2. 权限修饰不同(public,protected,private,缺省(即默认))
    • 成:可使用权限修饰符
    • 局:不可用权限修饰符
  3. 初始化不同
    • 成:有默认初始化值
    • 局:没有默认初始化值,必须定义 赋值 然后才能使用
  4. 在内存中的位置不同
    • 成:在堆内存(成员变量属于对象,对象进堆内存)
    • 局:在栈内存(局部变量属于方法,方法进栈内存)
  5. 生命周期不同
    • 成:随着对象的创建而存在,对象的消失而消失
    • 局:随着方法的调用而存在,方法的调用完毕而消失

3.2静态|成员

  1. 所属不同
    • 静:属于类,所以也称类变量
    • 成:属于对象,所以也称(实例/对象变量)
  2. 内存中位置不同
    • 静:方法区的静态区.
    • 成:堆内存.
  3. 内存出现时间不同
    • 静:随着类的加载而加载,随着类的消失而消失
    • 成:随着对象的创立而存在,随着对象的消失而消失
  4. 调用不同
    • 静:可以通过类名调用,也可以通过对象调用
    • 成:只能通过对象名调用

4.static关键词

每个中国人的国籍都是中国,那么中国这个属性就可以定义为静态的

1
2
3
4
5
6
7
8
9
10
11
可以用来修饰属性 方法 内部类 代码块

静态变量优先于对象的创建

静态是随着类的加载而加载,可以使用类名调用(class.param)

类只加载一次,所以静态变量只存在一份(在方法去的静态域中)

静态方法中没有thissuper,因为他们是随着对象的创建而存在

静态方法和属性的使用,可以从生命周期的角度去逻辑

4.1使用场景

1
2
3
4
5
6
7
8
静态属性:
一个属性需要被多个对象共享时
这样就不会随着对象的不同而不同
类中的常量也常常是static的

静态方法:
操控静态属性的方法,
工具类中的方法

4.2修饰属性与方法

4.2.1修饰属性

1
2
3
4
5
6
7
修饰的变量叫静态变量

实例变量:创建类的多个对象,每个对象都有一套自己的非静态属性,和其他对象属性不冲突

静态变量:创建类的多个对象,共享一个静态变量,某个对象如果把它修改了,别的对象调也是修改过的
static int num;
static String name;

4.2.2修饰方法

1
2
3
4
5
6
随着类的加载而加载,可以通过类名.方法名调用

静态方法中:只能调用静态的方法或属性

非静态方法中:成员变量/成员方法:可以是静态的/非静态的
public static void method(){}

5.final关键词

1
2
3
4
5
6
7
8
9
修饰类 :类不能被继承(比如String System等)

修饰变量 :变量就变成了常量 只能被赋值一次

修饰局部变量:例:形参,表示此形参是一个常量(已经传了实参)

修饰方法:法不能被重写(比如object中的getclass())

修饰属性初始化位置:显式初始化、代码块中初始化、构造器中初始化

5.1常量概述

1
2
3
4
5
6
7
8
9
10
11
常量是标记为final关键字的类变量

常量必须赋值,赋值后不能改变。

常量名称都需要大写。

如果常量又加上了static修饰就是全局常量

类变量的特性常量均有

类变量被存储在常量存储器中。

Java基础 | 类与对象
http://example.com/2022/03/26/Java初级部分/类与对象/
Author
John Doe
Posted on
March 26, 2022
Licensed under