day-05

1 面向对象的三大特点

封装
继承
多态

1.1 封装

封装是指一种将抽象性函式接口的实现细节部分包装、隐藏起来的方法。
private 关键字 是一个权限修饰符 可以修饰成员(成员变量和成员方法)
作用:
保护成员不被别的类使用(被private修饰的成员 的作用范围仅限于当前类)

针对private所修饰的成员变量,如果需要被其他的类使用 ,提供相应的额外操作方法:

  • 提供get变量名() 用户获取成员变量(被private)的值,方法修饰的是public
  • 提供set变量名(参数) 方法 用户获取成员变量的值 方法也是必须用public进行修饰
  • 例如:

1.2 this 关键字

this修饰成员变量:
可以区分成员变量和局部变量: 如果方法的形参和成员变量同名,不带this修饰的变量指的是形参,而this修饰的是成员变量
例如:

什么时候使用this—- 解决局部变量(隐蔽)成员便量
采用 this 关键字是为了解决成员变量和局部变量之间发生的同名的冲突。

this的内存原理:
this代表当前调用方法的对象。哪个对象调用当前的方法,this就代表哪个对象

封装是面向对象的三大特征之一。

是面向对象编程语言对客观世界的模拟,客观世界里成员变量都是隐藏在对象内部的,外界是无法直接操作的。

封装原则

将类的某些信息隐藏在类的内部,不允许外部程序直接访问。而是通过该类提供的方法来实现对隐藏信息的操作和访问。

成员变量使用private修饰 提供对象的getXxx()和setXxx()方法

封装的好处:

  • 通过方法来控制成员变量的操作,提高代码的安全性
  • 把代码用方法进行封装,可以提高代码的复用性。

1.4 java中对封装的体现

  1. 对于成员变量的封装 使用private

  2. 类体现的也是对一类事物的属性和行为的封装

  3. 方法体现了封装的思想:就是将某一个功能封装在其中。

2 构造方法

构造方法也称为构造器(constructor),用于对象的初始化。

  • 构造方法是一个创建对象时被自动调用的特殊方法。 目的就是对对象进行初始化。
  • 构造方法的名称要与类名完全一致。 构造方法没有返回值 (void也不写)
  • java通过new关键字来调用构造方法,从而返回该类的一个实例对象,是一种特殊的方法

2.1 构造方法的注意事项

  • 构造方法 :
  • 如果没有定义构造方法 系统将给出一个默认的无参构造方法
  • 如果定义了构造方法 系统都将不再提供默认的无参构造
  1. 构造方法的重载
  • 如果自定义了带参的构造方法,还要使用无参构造,就必须手动写出无参构造
  • 在一个类中,与类名相同的方法就是构造方法。每个类可以具有多个构造方法,但要求它们各自包含不同的方法参数。
  1. 无论是否使用无参构造,在开发中,都推荐显式的将无参构造定义出来

  2. 重要功能:可以使用带参构造为成员变量进行初始化

示例:

3 标准的Java bean的写法

  1. 成员变量 使用private修饰

  2. 提供getter和seter方法 来访问成员变量

  3. 提供构造方法:无参的 和带有多个参数的

示例:

4 常用API-String

API-application programming interface 应用程序编程接口
Java中的API :
指的是jdk中提供的各种功能的Java类,这些类底层的实现封装了起来,我们不需要关心这些类是如何实现的,只需要学习这些类如何使用即可。

String类位于java.lang包下,凡是位于java.lang包下的类,在使用的时候,不需要导包。String类代表的是字符串。java中的所有的字符串都被实现为String类的实例。java程序中所有使用双引 引起来的字符串,都是String类的对象

4.1 String字符串的特点

  1. 字符串不可改变,他的值在创建之后就不能被更改

  2. 虽然String的值是不可变的,但是他们是可以被共享。

  3. 字符串效果上相当于字符数组(char[]),但是底层原理却是字节数组([byte[ ]])

4.2 String类的构造方法

  • 初始化新创建的 对象,使其表示空字符序列。

  • 分配一个新的 ,以便它表示当前包含在字符数组参数中的字符序列。

  • 通过使用平台的默认字符集解码指定的字节数组来构造新的 。

  • String s = “abc” 直接赋值的方式创建字符串abc

4.3 创建字符串对象的两种方式的区别

4.3.1.通过构造方法创建

使用new创建字符串对象,每一次new都会申请一个内存空间,虽然内容都是相同的,但是所对应的内存地址是不同的。

上面的代码。jvm会首先创建一个字符数组,然后每一次new 的时候 都会有一个新的地址,只不过s3 和ss3参考的字符串的内容是相同的

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年6月20日
下一篇 2021年6月20日

相关推荐