0
点赞
收藏
分享

微信扫一扫

JavaSE:类和对象

素锦时年_1b00 2022-04-15 阅读 59
java

类和对象

C - 面向过程的编程语言
Java/C++ - 面向对象的编程语言

1. 类与对象的初步认知

  • 类: 类就是一类对象的统称
  • 对象: 对象就是这一类具体化的一个实例。
    • 人类: 彭于晏 和 我都是人类, 参数不同
  • 总的来说:类相当于一个模板,对象是由模板产生的样本。一个类,可以产生无数的对象。

2. 类和类的实例化

  • 注意事项:
    1. 类的命名使用有意义的大驼峰单词命名法
      • 从第一个单词开始首字母就大写, 多个单词都是首字母大写
    2. 类中定义的成员变量都有默认值
      • 默认值就是变量所在类的默认值

2.1 创建类

// 创建类 
class <class_name>{
    field;  //成员属性
    method; //成员方法 
}

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-d5lupM1R-1649984981642)(https://pic-log-1310504119.cos.ap-hongkong.myqcloud.com/Picgo/20220412225059.png)]

2.2 类的实例化

// 实例化对象
<class_name> <对象名> = new <class_name>();
  • new 关键字用于创建一个对象的实例.
  • 使用 . 来访问对象中的属性和方法.
  • 同一个类可以创建对个实例

3. 类的成员

3.1 字段/属性/成员变量

  • 成员变量可以在类的定义时,

3.2 方法

3.3 static关键字

  • 看见static本能反应和对象无关: 静态,表示共有
  • static修饰内容
    • 修饰方法:类方法,工具方法
    • 修饰代码块:静态代码块
    • 修饰内部类:静态内部类

3.3.1 修饰属性

  • 修饰属性:类属性,类变量,所有对象共享
  • 当一个实例变量被static关键字修饰, 他就表示类的属性,该类的所有对象共享这个属性,所有对象的属性值大家都一样.
  • static修饰的属性在JVM方法区中存储(不在堆栈存储),所有该类对象共享此属性.
    • static修饰的属性直接通过类名称就可以访问,无需通过对象访问.
      • Person.country
  • 总结:
    • static变量称为类属性, 在方法区中存储, 该类的所有对象共享此变量
    • 若在类中定义了常量,一般我们使用static和final共同修饰,全局常量
    • 要使用类属性, 我们通常直接通过类名称.属性名称 不推荐使用对象名称.属性名称

3.3.2 修饰方法

  • 类方法,工具方法: 在任何方法上应用static关键字,此方法称为静态方法
  • 直接通过类名称访问,没有对象就能访问.
    • 例如: main方法就是静态方法

4. 封装

  • 什么是封装? 保护性和易用性

4.1 private实现封装

  • private实现属性和方法的封装只是封装的一种.
  • Java中有四大访问修饰符: private < default < protected < public
    • public: 公有的, 在当前程序(项目)中都是可见的.
    • private:私有的, 被修饰的属性和方法只在类的内部可见, 出了类的{}就对外部隐藏了.

4.2 getter和setter方法

  • getter方法, 表示获取这个成员的值
  • setter方法, 表示设置这个成员的值

5. 构造方法

  • 构造方法是一种特殊方法, 使用关键字new实例化新对象时会被自动调用, 用于完成初始化操作
    • 构造方法的作用就是产生对象
  • 使用new关键字产生一个对象时,分为两步
    • 为对象在堆中分配空间
    • 调用对象的构造方法为对象成员变量赋值

5.1 基本语法

  1. 方法名称必须与类名称相同
  2. 构造方法没有返回值类型声明
  3. 每一个类中一定至少存在一个构造方法(没有明确定义,则系统自动生成一个无参构造)
    1. 无参构造: public Person() {}
    2. 有参构造: public Person(String name,int age,String sex) {}
  • 构造方法可以重载:重载只可能是参数数量不同.

this关键字

  • this表示当前对象的引用
  • this关键字修饰内容
    • 调用当前对象的成员变量
    • 调用当前对象的成员方法
      • 调用普通成员方法
      • 构造方法的互相调用
        • this调用其它的构造方法必须放在当前构造方法的首行
        • this调用方法不能成环(死循环)
    • 表示当前对象的引用
      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IWGG8xAG-1649984981643)(https://pic-log-1310504119.cos.ap-hongkong.myqcloud.com/Mweb/2022/04/14/16498491655225.jpg)]

6. 代码块

  • 代码块:指的就是使用{}括起来的一段代码称为代码块.
  • 根据定义的代码块的位置以及关键字的不同分为以下代码块

6.1 普通代码块

  • 定义在方法中,使用{}括起来的代码块.

6.2 构造代码块

  • 直接定义在类中,使用{}括起来的代码块. 一般用于初始化实例成员变量.
    • 优先于构造方法执行,有几个对象产生就调用几次构造块.

6.3 静态代码块

  • 定义在类中,使用static定义的代码块.
    • 最先执行,且只执行一次

7. 补充说明

7.1 匿名对象

  • new出来的对象,没有引用指向,使用一次后就销毁.
    • new Person()
举报

相关推荐

0 条评论