目录
1. 面向对象思想
1.1 为什么使用面向对象
1.2 用面向对象创建类
1.3 类图
2. 构造方法
2.1 构造方法定义
2.2 构造方法语法
2.3 构造方法作用
2.4 构造方法重载定义
2.5 构造方法重载的调用
3. static
3.1 static成员调用
3.2 static分配内存空间
3.3 static/非static区别
4. 封装
4.1 为什么要使用封装
4.2 什么是封装
4.3 封装的步骤
4.4 封装示例
5. this
5.1 this关键字的用法
5.2 this应用于构造器
1. 面向对象思想
1.1 为什么使用面向对象
- 人和计算机交流更加流畅
- 提高开发率
1.2 用面向对象创建类
从现实中抽象出类分三步:
1. 找出它的种类——>创建类
2. 找出它的属性——>创建属性
3. 找出它的行为——>创建方法
1.3 类图
使用类图描述类
用于分析和设计“类”
直观、容易理解
2. 构造方法
2.1 构造方法定义
- 它是一个方法
- 方法名与类名相同
- 修饰符与方法名之间没有返回值,包括也不能有void
2.2 构造方法语法
核心要点:系统默认提供无参构造方法,并且隐藏且不执行任何操作
2.3 构造方法作用
构造方法作用主要是对象的初始化(创建对象的同时赋值)
public class Demo05 {
String name;
//定义普通方法
public void show(){}
//定义无参构造方法
Demo05(){
name = "jojo";
}
//定义有参构造方法
Demo05(String name){
this.name = name;
}
}
2.4 构造方法重载定义
- 方法名相同
- 参数类型或是个数不同
- 和返回值、修饰符无关
注意:普通方法的重载和构造方法的重载条件相同
public class Test1 {
//普通方法构成重载
//条件:一定是多个方法之间才能构成重载
//方法名相同,参数类型不同
public void show(){}
public void show(String name){}
//方法名相同,参数个数不同
public void show1(String name){}
public void show1(String name,String id){}
//与返回值无关————》不构成重载
public void show2(){}
public int show2(){return 0;}
//与修饰符无关————》不构成重载
public void show3(){}
private void show3(){}
}
2.5 构造方法重载的调用
构造方法重载的调用根据new一个对象时的参数列表来判断去执行哪个构造方法
Test1 test1 = new Test1();
Test1 test2 = new Test1("张三");
3. static
3.1 static成员调用
static的特点用官方的话来说就是从属于类,独一份
(1)static修饰变量的场景
public class Test2 {
//static修饰的变量,可以通过类直接调用
static String name;
public static void main(String[] args) {
//非static修饰的变量 需要通过创建对象的方式去获取或者赋值
// Test2 test2 = new Test2();
// test2.name = "jojo";
//static修饰的变量直接通过类去调用
Test2.name = "jojo";
System.out.println(Test2.name);
}
}
(2)static修饰方法的场景
public class Test3 {
public static void eat(){
System.out.println("eat...");
}
public static void main(String[] args) {
Test3.eat();
}
}
3.2 static分配内存空间
static修饰的变量存放在方法区中,无论创建多少个对象给其赋值,其只有一个唯一的值,这就是从属于类,独一份的含义
3.3 static/非static区别
4. 封装
4.1 为什么要使用封装
场景:代码无问题,业务出问题,例如属性值赋值随意导致业务不合理
解决方式:利用封装
4.2 什么是封装
(1)隐藏 (2)方法 (3)控制语句
4.3 封装的步骤
- 如何隐藏:private
- 如何方法:setter/getter
- 如何控制语句:if判断
4.4 封装示例
public class seller {
String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
5. this
5.1 this关键字的用法
this这个关键字其实在前面已经本章之前已经多次出现了,它用法也是通俗易懂。
5.2 this应用于构造器
public class Dog {
public Dog() {
}
public Dog(int a){
this();//调用无参构造方法
//特点1:this()必须放在方法体中的第一行
//特点2:this()必须放在构造器中
}
}