目录
1.面向对象
1.1面向对象和面向过程的区别
1.2 构造器
1.3类和对象
1.面向对象
1.1面向对象和面向过程的区别
面向过程: 侧重于分步骤,就是以过程为中心,以什么正在发生为主要目标进行编程,“面向过程”就是汽车启动是一个事件,汽车到站是另一个事件。在编程序的时候我们关心的是某一个事件。而不是汽车本身。
面向对象: 侧重于分模块,面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为
面向对象的优点:
优点:易维护、易复用、易扩展,由于面向对象有封装、继承、多态性的特性,可以设计出低耦合的系统,使系统 更加灵活、更加易于维护
高内聚,低耦合
1.2 构造器
构造方法用来创建并初始化对象
如果一个类中没有编写构造方法,就默认有一个公共的无参构造,但是如果我们创建了一个构造方法,则就不再默认有无参构造。
语法: 权限控制修饰符 方法名(参数){方法体} 方法名必须和类名一致
可以根据需求编写很多个构造方法,就是构造方法重载
public class Constructor {
public static void main(String[] args) {
//调用方法m1
Constructor.m1();
//创建对象(可以调用)
Constructor c= new Constructor();
//对象调用m2方法
c.m2();
}
//有参方法
public Constructor(int i){
System.out.println("构造1");
}
//无参方法
public Constructor(){
System.out.println("构造2");
}
//构造方法m1
public static void m1(){
System.out.println("静态");
}
//构造方法m2
public void m2(){
System.out.println("成员");
}
}
1.3类和对象
类: 是我们思想上对某个事物描述的标准,一般描述这一类事物的属性和特征(是抽象的概念集合,表示的是一个共性的产物,类之中定义的是属性和行为(方法))
对象: 一切皆对象,对象就是个体,就是具体的东西,对象保存了类中的属性的值
可以一句话来总结出类和对象的区别:类是对象的模板,对象是类的实例。类只有通过对象才可以使用,而在开发之中应该先产生类,之后再产生对象。类不能直接使用,对象是可以直接使用的。
类和对象的关系:类是对象的抽象,而对象是类的具体实例。类是抽象的,不占用内存,而对象是具体的,占用存储空间。类是用于创建对象的蓝图,它是一个定义包括在特定类型的对象中的方法和变量的软件模板。
类定义属性,封装属性,而对象保存属性值
静态属性: 类的属性和功能
动态属性: 类 ,对象的属性和功能
所有对象共有的属性和值 是静态变量
所有对象共有的属性 是成员变量
只要他们是同一个类的对象,他们一定拥有共同的属性
根据不同的属性划分不同的类,根据不同的属性值划分不同的对象
如果该方法中有非静态属性的操作,则该方法定义为成员变量,反之定义为静态变量
package Test;
public class Student {
static int x=1;
//静态变量是所有的学生共有的属性和值
//成员变量是所有学生共有的属性
//学号
String id;
//姓名
String name;
//年龄
int age;
//性别
boolean sex;
//住址
String addr;
//需求: 打印 你好啊,我叫xxx 我今年xxx岁了
public void println(){
System.out.println("你好啊,我叫"+name+"我今年"+age+"岁了");
}
//定义有参的构造方法
public Student (String id1,String name1, int age1, boolean sex1,String addr1) {
id = id1;
name = name1;
age = age1;
sex = sex1;
addr = addr1;
}
//强制要去用户输入id号
public Student (String id1){
id=id1;
}
}
public class Opp {
// int i = 2;
// static int x = 1;
public static void main(String[] args) {
//创建对象
Student s1=new Student("00001");
//调用对象
s1.name="张三";
s1.age=18;
s1.id="18L0752222";
s1.addr="河北省石家庄市";
s1.sex=false;
System.out.println(s1.name);
System.out.println(s1.age);
System.out.println(s1.id);
System.out.println(s1.addr);
System.out.println(s1.sex);
s1.println();
Student s2 = new Student("0002");
s2.name = "李四";
s2.age = 19;
System.out.println(s2.id);
System.out.println(s2.name);
System.out.println(s2.age);
System.out.println(s2.sex);
System.out.println(s2.addr);
s2.println();
//创建对象有参数
Student s3 = new Student("00003", "王五", 18, false, "石家庄");
System.out.println(s3.id);
System.out.println(s3.name);
System.out.println(s3.age);
System.out.println(s3.sex);
System.out.println(s3.addr);
s3.println();
s1.x=2;
System.out.println(s1.x);
System.out.println(s2.x);
System.out.println(Student.x);
}
}



