面向对象 与 面向过程的区别:
都是一种思想,思维方式,思考问题的角度.
面向过程 : "关注实现过程|步骤,需要通过几步完成?"然后一步一步执行
面向对象 : "关注我该找谁来完成 ?"实现步骤不关注,只关注这个"谁",他就是对象
面向对象是依托于面向过程的
面向对象优点:
1.更贴合于显示生活中人们的思考角度
2.面向对象更贴合生活中管理者,面向过程更贴合与执行者
3.将复杂的问题简单化
以面向对象的思想进行编程 :
将程序与生活紧密联系
类 : 描述图纸|模板
对象 : 描述生活中真实存在的事物|实例
先有类,才能根据类创建对象
模板|图纸类|javabean的定义:
public class 类名{
//属性--> 成员变量
public 数据类型 属性名 = 赋值;
public 数据类型 属性名;
//功能 --> 成员方法
public 返回值类型|void 方法名(参数列表){
方法体;
[return 返回值;]
}
}
思考:
1)手机能做什么? --> 打电话,打游戏,聊天... --> 动词 --> 成员方法(不加static修饰的成员方法) --> 功能
2)手机有什么特点|特征 --> 品牌,颜色,价格,尺寸... -->名词 --> 成员变量 --> 属性
类和对象的概念
对象:是具体的事物 xiaoming xiaohong
类:是对对象的抽象(抽象 抽出象的部分)Person
先有具体的对象,然后抽象各个对象之间象的部分,归纳出类通过类再认识其他对象。
生活案例:
类是一个图纸 对象是根据该图纸制造多个实物类是一个模具 对象是使用模具制造的多个铸件(月饼模子 )类是上海大众汽车,对象就是大家购买的一辆辆具体上海大众汽车
对象和类的关系:
特殊到一般,具体到抽象。类可以看成一类对象的模板,对象可以看成该类的一个具体实例类是用于描述同一类形的对象的一个抽象的概念,类中定义了这一类对象所应具有的静态和动态属性。JDK提供了很多类供编程人员使用,编程人员也可定义自己的类。
自定义类与对象
定义类(类的组成)
属性 field方法 method构造方法 construtor其他:代码块 静态代码块 内部类
类的实例
一般类中有三种常见的成员:属性,field、方法,method、构造器constructor。**这三种成员都可以定义
零个或多个。
编写简单类
public class Student {
//属性(成员变量)
int id; String sname;
int age;
//方法
void study(){
System.out.println("我正在学习!");
}
//构造方法
Student(){ }
}
一个典型IT学生类
class Computer {
String brand; //品牌
}
public class ITStudent {
// field
int id;
String sname; int age;
Computer comp; void study() {
System.out.println("我正在学习!使用我们的电脑,"+comp.brand);
}
ITStudent() {
}
public static void main(String[ ] args) {
Student stu = new Student();
stu.sname = "张三";
Computer comp = new Computer();
comp.brand = "联想";
stu.comp = comp; stu.study();
}
}
成员变量和局部变量
声明位置不同
成员变量 : 类中方法外局部变量 :方法中(块中)
作用范围不同
成员变量 : 当前类中局部变量 : 当前方法不同的方法中即使有同名的局部变量,没有关系,互不影响,建议相同
内存存放的位置的
成员变量 : 堆内存中局部变量 : 栈内存中
默认值情况不同
成员变量 : 有默认值局部变量 : 没有默认值
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dVDrxMpc-1646823341423)(C:UsersckDesktopckMarkDownJavaSE基础入门7image-20220309172828195.png)]
名的局部变量,没有关系,互不影响,建议相同
内存存放的位置的
成员变量 : 堆内存中局部变量 : 栈内存中
默认值情况不同
成员变量 : 有默认值局部变量 : 没有默认值



