this关键词
-
this修饰的变量用于指代成员变量
方法的形参如果与成员变量名同名,不带this修饰的变量指的是形参,而不是成员变量
方法的形参没有与成员变量同名,不带this修饰的变量指的是成员变量
-
什么时候使用this呢?解决 局部变量隐藏成员变量
-
this:代表所在类的对象引用
记住:方法被哪个对象调用,this就代表哪个对象
this内存原理
封装
1.封装概述
封装是面向对象的三大特征之一(封装,继承,多态)
是面向对象编程语言对客观世界的模拟,客观世界里成员变量都是隐藏在对象内部的,外界是无法直接操的
2.封装原则
将类的某些信息隐藏在类内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的操作和访问
成员变量private,提供对应的getXxx()/setXxx()方法
3.封装好处
通过方法来控制成员变量的操作,提高了代码的安全性
把代码用方法进行封装,提高了代码的复用性
构造方法
构造方法概述
构造方法是一种特殊的方法 《构造方法是一个方法》
作用:创建对象
格式:
public class 类名{
修饰符 类名(参数){
}
}
功能:主要是完成对象数据的初始化
构造方法的注意事项
1.构造方法的创建
如果没有定义构造方法,系统将给出一个 默认 的 无参照构造方法
如果定义了构造方法,系统将不再提供默认的构造方法
2.构造方法的重载
如果自定义了带参构造方法,还要使用无参数构造方法,就必须再写一个无参构造方法
3.推荐的使用方式
无论是否使用,都手工书写无参数构造方法
标准类制作
1.成员变量
使用private
2.构造方法
提供一个无参构造方法
提供一个带多个参数的构造方法
3.成员方法
提供每一个成员变量对应的setXxx()/getXxx()
提供一个显示对象信息的show()
4.创建对象并为其成员赋值的两种方式
无参构造方法创建后使用setXxx()赋值
使用带参构造方法直接创建带有属性值的对象
字符串
API
API(Application Programming Interface):应用程序编程接口
JAVA API:指的就是 JDK 中提供的各种功能的JAVA的类
这些类将底层的实现封装起来,我们不需要关心这些类是如何实现的,
只需要学习这些类如何使用即可,我们可以通过帮助文档来学习这些API如何使用
需求:按照帮助文档的使用步骤学习Scanner 类的使用,并实现键盘录入一个字符串,最后输出在控制台
注意:
调用方法的时候,如果方法有明确的返回值,我们用变量接收
可以手动完成,也可以使用快捷键的方式完成(Ctrl+Alt+V)
String
String概述
String类在java.lang包下,所以使用的时候不需要导包
String类代表字符串,JAVA程序中所有的字符串文字(例如:"abc")都被实现为此例的实例
也就是说,JAVA程序中所有的双引号字符串,都是String类的对象
字符串的特点:
字符串不可变,他们的值在创建后不能被改变
虽然String的值是不可变的,但它们可以被共享
字符串效果上相当于字符数组(char[]),但是底层原理是字节数组(byte[])
String 构造方法
String对象的特点
1.通过 new 创建的字符串对象,每一次new 都会申请一个内存空间,虽然内容相同,但是地址不同
2.以 "" 方式给出的字符串,只要字符序列相同(顺序和大小写),无论在程序代码中出现几次,
JVM都只会建立一个String对象,并在字符串池中维护
3.在内存中的过程
字符串的比较
使用 == 作比较
基本类型:比较的是数据值是否相等
引用类型:比较的是地址值是否相等
字符串是对象,他比较内容是否相同,是通过一个方法来实现的,这个方法叫:equals()
public boolean equals( Object anObject): 将此字符串与指定对象进行比较。由于我们比较的是字符串对象,所以参数直接传递一个字符串
案例
需求:已知用户名和密码,请用程序实现模拟用户登录。总共给三次机会,登录之后,给出相应的提示
需求:键盘录入一个字符串,使用程序实现在控制台遍历该字符串
需求:键盘录入一个字符串,统计该字符串中大写字母字符,小写字母字符,数字字符出现的次数(不考虑其他字符)
需求:定义一个方法,把int数组中的数据按照指定的格式拼接成一个字符串返回,调用该方法,
并在控制台输出结果。例如,数组int[] arr ={1,2,3};执行方法后输出的结果为:[1,2,3]