一 面向对象
1.1 面向对象与面向过程的区别
面向过程 : 侧重分步骤
面向对象:侧重分模块
1.2 面向对象的优点
可扩展性,可维护性,耦合度降低
高内聚,低耦合
1.3 构造器
构造方法:用来创建并初始化对象
如果一个类中没有编写构造方法,则默认有一个公共的无参构造但是如果我们创建了一个构造方法,则不再有默认的构造方法
语法: 权限控制修饰符 方法名 (参数 ){方法体} 并且方法名必须和类名一致,可以根据需求编写默认的构造方法,也就是方法重载.
public class Constructor_01 {
public static void main(String[] args) {
Constructor_01.m1();
// 创建对象
Constructor_01 c = new Constructor_01(1);
c.m2();
}
public Constructor_01(int i) {
System.out.println("构造方法");
}
public Constructor_01() {
System.out.println("构造方法");
}
public static void m1() {
System.out.println("静态方法");
}
public void m2() {
System.out.println("成员方法 ");
}
}
1.4 类和对象
类:描述了这一类事物的属性和特征 我们再抽离某个概念的时候,就能够根据对应的属性建立相关事物的类 根据类中属性的特征 建立对应的属性 比如 静态变量是所有学生共有的属性和值,成员变量是所有学生共有的属性
对象:一切皆对象,对象就是个体,就是具体的东西 对象就是保存了类中的属性的值
类和对象是什么关系
类和对象是什么关系: 类定义属性,封装属性,而对象保存属性值
静态属性 : 类的属性和功能
动态属性 : 类 对象的属性和功能
所有对象共有的属性和值 是静态变量 所有对象共有的属性 是成员变量 只要是同一个类的对象,他们一定拥有共同的属性根据不同的属性划分不同的类,根据不同的属性值划分不同的对象 如果该方法中有非静态属性的操作,则该方法定义为成员方法,反之定义为静态方法
例如:定义一个学生类
public class Student {
static int x = 1;
// 静态变量是所有学生共有的属性和值
// 成员变量是所有学生共有的属性
// 学号
String id;
// 姓名
String name;
// 年龄
int age;
// 性别
String sex;
// 住址
String addr;
// xxx
// 需求 : 打印 你好啊,我叫xxx 我今年xxx岁了
//成员方法
public void println(){
System.out.println("你好啊,我叫"+name+" 我今年"+age+"岁了");
}
//有参构造方法
public Student(String id1, String name1, int age1, String sex1, String addr1) {
id = id1;
name = name1;
age = age1;
sex = sex1;
addr = addr1;
}
//有参构造方法
public Student(String id1) {
id = id1;
}
}
创建对象:
public static void main(String[] args) {
Student s1 = new Student("0001");
//对对象属性进行赋值
s1.name = "张三";
s1.age = 18;
s1.sex = "男";
s1.addr = "石家庄";
System.out.println(s1.id);
System.out.println(s1.name);
System.out.println(s1.age);
System.out.println(s1.sex);
System.out.println(s1.addr);
//成员方法调用:对象.方法名
s1.println();
}