1. 类和对象
1.1类和对象的概念
对象:客观存在的事物都是对象。
面向对象:人关注对象(事物)。
类:是对现实生活中一类具有共同属性和行为的事物的抽象,确定对象将为拥有的属性和行为。
类的特点:(1)类是对象的数据类型
(2)类是具有相同属性和行为的一组对象的集和
对象的属性:对象具有各式各样的特征,每个对象的每个属性都拥有特定的值。
对象的行为:对象能够执行的操作。
类和对象的关系:(1)类是对象的抽象
(2)对象是类的实体
1.2 类的定义
类的组成:属性和方法
属性:在类中通过成员变量来实现(类中方法外的变量)
行为:在类中通过成员方法来体现(和前面的方法相比去掉static关键字即可)
定义类的步骤:(1)定义类
(2)编写类的成员变量
(3)编写类的成员方法
1.3对象的使用
(1)创建对象:
(2)使用对象:
2.对象内存图
2.1 单个对象的内存图(方法在调用完就消失了)
2.2 多个对象的内存图(new出来的都是新的)
2.3多个对象指向相同的内存图
3.成员变量和局部变量
3.1成员变量和局部变量的区别
4.封装
4.1private关键字
(1)是一个权限修饰符。
(2)可以修饰成员(成员变量和成员方法)。
(3)作业是:保护成员不被别的类使用,被private修饰的成员只在本类中才能访问。
针对private修饰的成员变量,如果需要被其他的类访问,提供相应的操作:
(1)提供“get变量名()”方法,用于获取成员变量的值,方法用public修饰。
(2)提供“set变量名(参数)”方法,用于设置成员变量的值,方法用public修饰。
4.2private关键字的使用
package com.Dome;
//学生类
public class Student {
//成员变量
private String name;
private int age;
public void setName(String n){
name = n;
}
public String getName(){
return name;
}
public void setAge(int a){
age = a;
}
public int getAge(){
return age;
}
//成员方法
public void show(){
System.out.println(name + "," + age);
}
}
package com.Dome;
//学生测试类
public class StudentDome {
public static void main(String[] args) {
//创建对象
Student a = new Student();
//使用set方法给成员赋值
a.setName("子木!!!");
a.setAge(18);
a.show();
//使用get方法获取成员变量的值
System.out.println(a.getName()+"---"+ a.getAge());
}
}
4.3 this关键字
(1)this修饰的变量用于指代成员变量
方法的形参如果与成员变量名相同,不带this修饰的变量指的是形参。
(2)this关键字:解决局部变量隐藏成员变量。(即两个名字相同)
(3)this:代表所在类中的引用。
方法被那个对象调用,this 就是那个对象。
![](https://img-blog.csdnimg.cn/a24253edb5954ea6a527050d04346082.png)
4.4 this内存原理