面向过程和面向对象:
面向过程 : 侧重分步骤
面向对象 : 侧重分模块
面向对象优势 : 可扩展性,可维护性,灵活性,低耦合
缺点 : 性能比面向过程相对较差
构造方法
构造方法 每个类里都有,用于创建类里的对象
如果类里没有写构造方法,系统会给自动生成一个无参构造
如果该类中编写了构造方法,系统就不自动生成,所以最好写有参构造时,手动写一个无参构造
构造方法语法: 修饰符 方法名/类名 (参数列表){方法体}
比方法少一个返回值,即没有void
构造方法的 方法名 必须和 类名 一致
构造方法的修饰符只用权限控制,不要static
静态属性调用
类名.静态变量 / 类名.静态方法(参数)
调用当前类中的静态属性,类名可以省略
成员属性调用
对象.成员变量 / 对象.成员方法(参数)
加前缀 是为了找到它
创建对象 :Daima_01 a=new Daima_01();
new:这是在堆内存创建对象空间
Daima_01(); 这是在调用构造方法
对象:
对象就是值一个具体的事物
类:描述一类事物的属性和特征,是抽象出的模板
对象就是类的实现,保存了属性的值
通过需求或者现实事物的属性和特征来定义类
然后通过不同属性的值来定义对象
对象和对象之间 有相同属性和相同值 用静态变量
对象和对象之间 有相同属性和不同的值(也可以相同) 用成员变量
实例化:(用类创建对象的过程叫实例化)
1 加载对应类文件
2 new :在堆内存创建空间
3 执行构造方法,对堆内存对象进行 初始化
4 构造方法弹栈,并把堆内存地址返回给变量 student
静态属性和成员属性:
student=null;空指针异常
静态属性,使用类名调用
也可以使用对象调用,会自动转换为类名调用 所以该变量是不是null没关系
System.out.println(Student.i);
System.out.println(student.i);//Student.i
studnet=null;
System.out.println(student.i);//Student.i
这三种打印的都是Student.i的值
*静态方法中无法直接调用非静态属性*
需要使用对象调用才行
静态变量:对象之间共有的属性和值
成员变量:对象之间共有的属性不同的值,但值也可以相等
成员方法:方法中需要使用成员属性的时候,定义为成员方法
静态方法:方法中不需要使用成员属性的时候,定义为静态方法
成员方法可以和类名相同
区分成员方法和构造方法:看返回值,构造方法没返回值,void都没有
快速创建get、set方法:
source->Generate Getters and Setters