面向对象
特征:封装,继承,多态
- 定义类:定义类的成员(成员变量和成员方法)
成员变量 和以前定义变量是一样的,只不过位置发生了改变。在类中,方法外。(全局变量)
成员方法 和以前定义方法是一样的,只不过把static去掉,后面在详细讲解static的作用。 - 类:是一组相关的属性和行为的集合
- 对象:是该类事物的具体体现
——如何创建一个类对象?
——eg:Scanner sc = new Scanner()——Scanner()为类,sc为类对象
Student stu = new Student()
格式:类名 对象名 = new 类名();
- 先给成员变量赋值 eg:stu.name = “xiaoming”;
- 获取成员变量的值 eg:String name = stu.name;
- 若不获取成员变量的值,则输出时为:System.out.println(stu.name);
- 输出成员变量 eg:System.out.println(name);
- 使用成员方法 eg:stu.eat();
局部变量和成员变量区别
两者均遵循就近原则:当成员变量和局部变量重名时,那么访问变量的规则就遵从就近原则——先从局部范围找,找变量,如果找不到,去成员位置找,找成员变量
成员变量:
- 定义在类中方法外
- 存放于堆内存中
- 随着对象的消失而消失
- 有默认初始值
局部变量:
- 定义在方法声明上或者方法中
- 存放于栈内存中
- 随着方法的调用结束而消失
- 无默认初始值,必须经过赋值才能使用
传参
形式参数若为基本类型——则形参改变不影响实参
形式参数若为引用类型——则形参改变直接影响实参
基本类型:除非把变量定义一个返回值,使它可以被赋值,否则对实参无影响
引用类型:引用的内存地址和实参是一个,调用完方法后参数值被改变
封装
定义:隐藏对象的属性和实现细节,仅对外提供公共访问方式——提高了代码的安全性与重复使用性
private——关键字
- 权限修饰符,可以修饰成员变量和成员方法,使其只能在本类中被访问
- 提供对应的setXXX()和getXXX()
this——关键字
定义:代表当前类的一个对象,哪个方法调用这个对象,this就代表哪个方法
- 解决局部变量隐藏成员变量的问题