一、类和对象
1.概述
什么是对象
万物皆对象,客观存在的事物皆为对象
象具有的各种特征,每个对象的每个属性都拥有特定的值
对象的行为:对象能够执行的操作
什么是类
类是对现实生活中一类具有共同属性和行为的事物的抽象。
特点: ①类是对象的数据类型; ②类是具有相同属性和行为的一组对象的集合。
类和对象的关系
类:对现实生活中一类具有共同属性和行为的事物的抽象
对象:理解为能够看得到摸的着的真实存在的实体
2.类的定义
类的意义
类是Java程序的基本组成单位。是对现实生活中一类具有共同属性和行为的事物的抽象(确定对象将会拥有的属性和行为)。
由属性和行为等组成
属性:在类中通过成员变量来体现(成员变量:类中方法外的变量)
行为:在类中通过成员方法来体现(成员方法:不含static的方法->public 返回值类型 方法名(形参){...})
类的定义步骤
定义类
编写类的成员变量
编写类的成员方法
public class Phone {
//成员变量
String brand;
int price;
//成员方法
public void call() {
System.out.println("打电话...");
}
public void sendMessage() {
System.out.println("发短信");
}
}
3.对象的创建及使用
创建对象
格式:类名 对象名 = new 类名();
范例:Phone p = new Phone();
使用对象
1:使用成员变量
格式:对象名.变量名
范例:p.brand
2:使用成员方法
格式:对象名.方法名()
范例:p.call()
public class Test_01类的定义入门 {
public static void main(String[] args) {
//创建对象
Phone p = new Phone();
//使用成员变量默认值
System.out.println(p.brand + "===" + p.price);
//修改成员变量
p.brand = "华为";
p.price = 5999;
//使用成员变量修改后的值
System.out.println(p.brand + "===" + p.price);
//使用成员方法
p.call();
p.sendMessage();
}
}
二、成员变量和局部变量
成员变量:类中方法外的变量
局部变量:方法中(或方法上)的变量
三、封装
1.private关键字
概述
是一个权限修饰符,可以修饰成员(成员变量和成员方法等)
作用是保护成员不被别的类随意使用,被private修饰的成员只在本类中直接访问
基本应用
针对private修饰的成员,如果需要被其他类使用,提供相应的操作(方法)
提供public修饰的“get变量名()”方法,用于获取成员变量的值(一般没有void)
public int getAge() { }
提供public修饰的“set变量名(参数)”方法,用于设置成员变量的值(一般有void和形参)
public void setAge(int a) { }
标准用法
把成员变量用private修饰,提供对应的getXxx()/setXxx(参数)方法
2.this关键字
概述
this修饰的变量用于指代成员变量
就近原则:
局部变量(形参或方法中的变量)与成员变量同名,使用变量名访问的是局部变量,而不是成员变量
this的应用
问题:当成员变量局部变量同名,想要使用成员变量,会因为就近原则,优先使用局部变量,导致局部变量隐藏了成员变量。
this明确指向成员变量,从而解决局部变量隐藏成员变量的问题。
this内存原理
参考资料:素材\4.this内存原理.pptx
代表所在类的对象引用
方法被哪个对象调用,this就代表哪个对象.
3.封装的理解
封装概述
是面向对象三大特征之一(封装,继承,多态)
是面向对象编程语言对客观世界的模拟,客观世界里成员变量都是隐藏在对象内部的,外界是无法直接操作的
封装原则
将类的某些信息隐藏在类内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的操作和访问
成员变量private,提供对应的getXxx()/setXxx()方法
封装好处
通过方法来控制成员变量的操作,提高了代码的安全性
把代码用方法进行封装,提高了代码的复用性
4.构造方法
构造方法是一种特殊的方法,用于创建对象、对象数据初始化(这里的初始化指的是第1次主动赋值)。
定义格式
修饰符 类名( 形式参数 ) {
}
例如:
public class Student {
public Student() {
//构造方法内书写的内容
}
}
使用格式
new 类名(实际参数)
例如:
public class StudentDemo {
public static void main(String[] args) {
Student s1 = new Student();
}
}
5.类的封装-标准结构
实体类的标准结构
- 定义类-------------public class 类名{}
- 定义成员变量--------使用private修饰成员变量
- 定义构造方法--------无参构造、有参构造、满参构造(一般只提供无参和满参)
- 定义成员方法--------setXxx()/getXxx()/其他方法
对象的创建与使用
- 无参构造--------创建对象后使用setXxx()赋值
- 有参构造--------创建对象时直接赋值
快捷操作
- 无参构造:Alt+insert-->Construct-->selectnone
- 有参构造:Alt+insert-->Construct-->按住Ctrl选择成员变量-->OK
- get/set方法:Alt+insert-->getter and setter-->按住Ctrl选择成员变量-->OK
- 除了构造方法和成员方法,其他内容手动书写完成
四、API概述
JavaAPI JDK 中提供的各种功能的Java接口和类 这些类封装了底层实现,我们无需关心实现细节,只需要学习如何使用这些类。