面向对象思想
Java语言是一种面向对象的程序设计语言,而面向对象思想是一种程序设计思想,我们在面向对象思想的指引下,
使用Java语言去设计、开发计算机程序。 这里的对象泛指现实中一切事物,每种事物都具备自己的属性和行为。面
向对象思想就是在计算机程序设计过程中,参照现实中事物,将事物的属性特征、行为特征抽象出来,描述成计算
机事件的设计思想。 它区别于面向过程思想,强调的是通过调用对象的行为来实现功能,而不是自己一步一步的去
操作实现。
什么是面向过程?
举个例子;
把衣服脱下来-->找一个盆-->放点洗衣粉-->加点水-->浸泡10分钟-->揉一揉-->清洗衣服-->拧干-->晾起来
面向过程一种以事件为中心的编程思想,编程的时候把解决问题的步骤分析出来,然后用函数把这些步骤实现,
在一步一步的具体步骤中再按顺序调用函数。注重步骤
什么是面向对象?
同理如上面的例子:
把衣服脱下来-->打开全自动洗衣机-->扔衣服-->按钮-->晾起来
面向对象要是把事物给对象化,包括其属性和行为。面向对象编程更贴近实际生活的思想。
总体来说面向对象的底层还是面向过程,面向过程抽象成类,然后封装,方便使用就是面向对象。
把数据及对数据的操作方法放在一起,作为一个相互依存的整体——对象。对同类对象抽象出其共性,形成类。
类中的大多数数据,只能用本类的方法进行处理。类通过一个简单的外部接口与外界***,对象与对象之
间通过消息进行通信。程序流程由用户在使用中决定。对象即为人对各种具体物体抽象后的一个概念,人们每
天都要接触各种各样的对象,如手机就是一个对象。
客观存在的事物皆为对象 ,所以我们也常常说万物皆对象。
类
类的理解
类是对现实生活中一类具有共同属性和行为的事物的抽象
类是对象的数据类型,类是具有相同属性和行为的一组对象的集合
简单理解:类就是对现实事物的一种描述
类的组成
属性:指事物的特征,例如:手机事物(品牌,价格,尺寸)
行为:指事物能执行的操作,例如:手机事物(打电话,发短信)
类和对象的关系
类:类是对现实生活中一类具有共同属性和行为的事物的抽象
对象:是能够看得到摸的着的真实存在的实体(具体)
简单理解:类是对事物的一种描述,对象则为具体存在的事物
类是对象的模板,对象是类的实体。
对象
是一类事物的具体体现。对象是类的一个实例(对象并不是找个女朋友),必然具备该类事物的属性
和行为。
//创建对象格式:类名 对象名 = new 类名();
Student s = new Student();
匿名对象
没有变量名的对象
new 类名(参数列表);
new Scanner(System.in);
匿名对象只能使用唯一的一次,下次再用不得不再创建一个新对象。
使用建议:如果确定有一个对象只需要使用唯一的一次,就可以用匿名对象。
对象的内存图: Java内存一共五块 栈(Stack)堆(Heap)方法区(Method Area)本地方法栈(Native Method Stack)程序计数器(Program Counter Register)
一个对象内存图
一个标准类如下:JavaBean-----Java语言编写类的一种标准规范
/* 标准类有以下几点: 1,所有的成员变量都要使用private关键字修饰
2,为每一个成员变量编写一堆Getter/Setter方法
3,编写一个无参数的构造方法
4,编写一个全参数的构造方法 */ public class Student { private String name;//姓名 private int age;//年龄 private int clas;//成绩 private String sex; //无参构造方法 public Student() { } //有参(全参)构造方法 public Student(String name, int age, int clas, String sex) { this.name = name; this.age = age; this.clas = clas; this.sex = sex; } //set 和 get 方法 public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public int getClas() { return clas; } public void setClas(int clas) { this.clas = clas; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } }
成员变量和局部变量的区别:
在类中的位置不同 重点
成员变量:类中,方法外
局部变量:方法中或者方法声明上(形式参数)
作用范围不一样 重点
成员变量:类中
局部变量:方法中
初始化值的不同 重点
成员变量:有默认值
局部变量:没有默认值。必须先定义,赋值,最后使用
在内存中的位置不同 了解
成员变量:堆内存
局部变量:栈内存
生命周期不同 了解
成员变量:随着对象的创建而存在,随着对象的消失而消失
局部变量:随着方法的调用而存在,随着方法的调用完毕而消失