类与对象
面向对象:
java是面向对象编程的(Object-Oriented Programming,简记为OOP)
面向对象的语言:Smalltalk、Eiffel、C++、Java、PHP
面向过程的语言:C语言
1.什么是面向对象?
万事万物皆对象
是当下最流行的程序设计方式之一。在面向对象的设计思想中,将程序视为多个对象共同协作的结果。程序被划分为多个子模块,再由多个对象完成各自模块最终实现程序的功能。
2.面向对象和面向过程的区别
-
面向过程,开发者注重于程序功能实现的过程,类似于执行者的角色,
面向对象,开发者注重于对象的创建和调用,类似于似指挥者的角色
-
面向过程,开发者可以精准把控程序执行的每一步和每一个细节
面向对象编程中,开发者无需知道对象的每一个细节,对象如何工作交给对象的设计者完成 -
面向过程适合小型项目,维护困难,不方便改动
面向对象适合中大型的项目,维护方便
3.面向对象的3大基本特性:
- 封装
- 继承
- 多态
类
- 属性
//定义全局变量的时候,不建议直接赋值操作
[访问权限修饰符][普通修饰符] 数据类型 变量名称;
//成员变量名称小写驼峰的命名方式 如:
public int sid;
public String studentName;
- 方法
//定义方法 方法名是小写的
public void study(){
System.out.println(studentName+"在学习");
}
- 构造方法
一个类中默认使用了无参构造,手动加上有参构造的话,无参构造会被覆盖掉,所以在添加有参构造的时候,一定要加上无参构造,以免发生一些错误。
构造方法的作用:初始化变量的数据
idea使用 alt+insert快捷键自动成构造方法
//一个类中有默认的构造方法,构造方法的方法名和类名一致
//构造方法的定义为: [访问权限修饰符] [类名](形参列表数据){}
//无参构造方法
public Student(){
}
//有参构造方法
public Student(int sid, String studentName){
this.sid = sid;
this.studentName = studentName;
}
对象
对象的创建
测试环境:test目录下(绿色的目录)
生产环境:src目录下(蓝色的目录)
1.创建对象
创建对象的语法:类名 对象名 = new 类名();
创建匿名对象: new 类名(); 使用周期只有一次,每创建一次就会在堆内存初始化空间
//java程序的入口是main方法,在测试环境下创建对象
public static void main(String[] args){
//创建对象的语法为: 类名 对象名 = new 类名();
Student student = new Student();//无参
//通过有参构造创建方法
Student stu = new Student(1,"小王");//有参
System.out.println(stu);
//通过对象.属性,给属性赋值
student.studentNamr = "小王";
//通过对象.方法 来调用方法
student.study();
}
2.对象的创建流程
例: Student student = new Student();
- 通过new Student(); 在堆内存中初始化空间
- 通过构造方法给成员变量初始化赋值
- 把初始化之后的值赋给对象(对象是存放在栈内存中的,引用数据类型都存在栈内存中)
创建对象时的内存图
访问类的属性
-
参数传递,使用形参进行参数传递 (使用对象充当形参或者基本,引用类型参数)
-
使用对象进行访问
对象调用属性或者方法之前判断不为空
if (maintain == null){
return;
}
maintain.mend(color,brand);
return;