面向对象并不是一个技术,而是一种指导思想。
为什么要用面向对象编程?
因为生活中,我们解决问题时,就是采用这种指导思想去解决的。所以,我们写程序去解决问题时,如果也能采用这种指导思想就会使得程序变得非常简单,程序也便于人理解。
什么是类
类是对现实生活中一类具有共同属性和行为的事务的抽象
什么是对象
是能够看得到摸得着的真实存在的实体
对象的属性和行为
属性:对象具有的各种特征,每个对象的每个属性都拥有特定的值
行为:对象能够执行的操作
类的定义
类是什么:是对现实生活中一类具有共同属性和行为的事物的抽象,确定对象将会拥有的属性和行为
类的组成:属性和行为
属性:在类中通过成员变量来体现(类中方法外的变量)
行为:在类中通过成员方法来体现(和前面的方法相比去掉static关键字即可)
定义类:
定义类编写类的成员变量
编写类的成员方法
对象的使用
Java内存分配
Java 程序在运行时,需要在内存中分配空间。为了提高运算效率,就对空间进行了不同区域的划分,因为每一片区域都有特定的处理数据方式和内存管理方式。
栈:所有局部变量都会在栈内存中创建
局部变量:定义在方法中的变量或者方法声明上的变量
方法执行都会加载到栈中进行
局部变量特点:随着方法的调用而存在,随着方法的调用完毕而消失
代码:Student s = new Student();
堆:所有对象及其对应的实例变量和数组都将存储在此处
简单理解为:new出来的东西,都存储在堆内存
每一个new出来的东西都有一个地址值,使用完毕,会在垃圾回收器空闲时被回收
实例变量(成员变量)有初始化值:
基本数据类型:整数:0,浮点数:0.0,布尔:false,字符:空字符
引用数据类型:null
private关键字
是一个权限修饰符
可以修饰成员(成员变量和成员方法)
作用是保护成员不被别的类使用,被 private 修饰的成员只在本类中才能访问
针对 private 修饰的成员变量,如果需要被其他类使用,提供两个相应的操作:
提供“get变量名()”方法,用于获取成员变量的值,方法用 public 修饰
提供“set变量名(参数)”方法,用于设置成员变量的值,方法用 public 修饰
this关键字
① this限定的变量用于指代成员变量
方法的形参如果与成员变量同名
不带this修饰的变量指的是形参,而不是成员变量
方法的形参没有与成员变量同名
不带this修饰的变量指的是成员变量
② 什么时候使用this呢?解决局部变量隐藏成员变量
③ this:方法被哪个对象调用,this就代表哪个对象
封装
1. 封装概述
2. 封装原则
3. 封装好处