面向对象
面向对象适合处理复杂问题,适合处理需要多人协作的问题
☆本质:以类的方式组织代码,以对象的组织(封装)数据
三大特性:封装、继承、多态
一个项目应该只存在一个main方法
this表示当前类
创建与初始化对象:
使用new关键字创建对象
格式(在类存在的情况下):
类名称 自定义名称 = new 类名称();
以类的方式组织代码,以对象的组织(封装)数据!理解上类相当于是零部件,各个模板,对象相当于main函数用于给类所定义的模板进行赋值或其他操作。
构造器
和类名相同且没有返回值
Alt+insert快速生成构造体
作用:1使用new关键字,本质是在调用构造器
2用来初始化值
有参无参概念上类似于重载函数
注意点:定义有参构造后,如果想使用无参构造,显示的定义一个无参的构造
类与对象
1类与对象
类(class)是一个模板:抽象,对象是一个具体实例(main)
2方法
定义、调用
3对应的引用:基本类型(8)
对象是通过引用来操作的:栈------>堆
4属性:字段Field 成员变量
修饰符 属性类型 属性名 = 属性值
5对象的创建和使用
—必须使用new关键字创造对象,构造器。例如Person 对象名称 = new Person();
—对象的属性 例如: 对象名称.name
—对象的方法 例如:对象名称.sleep()
6类
静态的属性 属性
动态的方法 方法
封装
“高内聚,低耦合”:高内聚就是类的内部数据操作细节自己完成,不允许外部干涉;低耦合:仅暴露少量方法给外部使用
属性私有,即在类中定义(int char之类的)前加private,在main对象中就无法直接调用,如果定义前加的是public则可直接调用
关键字private
通过设定get方法来获取内容,以名字为例,在private String name的前提下,在该类中
public String getName(){//方法名可自定义命名
return this.name;//通过return this.name获得此类中private String name的值
}
通过set方法来设定private内容的值,同样以名字为例:
public String setName(String name){//同样可以任意命名
this.name = name;
}
然后在主程序中调用:
//类名为Student
Student student = new Student();
student.setName('test');//这样类中的private名字就变成了test
System.out.println(student.getName());//输出名字
快捷键Alt+insert,选中Getter and Setter,选中该类中需要get或set的私有属性即可自动生成
作用:1、提高程序安全性,保护数据
2、隐藏代码的实现细节
3、统一接口
4、系统可维护性增强