首先从面向过程方面来说 面向过程就是 线性的做事方法 该干嘛就干嘛 吃饭来说:你要先下楼-找饭店-找老板-点餐。。。。事情是有一个繁琐的过程
面向对象就是 站在一个高度上只要发出相应的命令就行 事情不需要自己去一步一步来。吃饭就是简单的一个吃饭 你只要点个外卖。发个命令就可以省去很多复杂过程。
对象:对象就是一个具体的实例东西 ,万物皆对象。比如你面前有个水杯 ,你指着这个水杯说,这是一个水杯那么这个水杯就是一个对象。
类:类就是对 对象的抽象(抽出来象的一部分),先有具体的对象然后抽出来各个对象之间象的部分,归纳出类,通过类在认识其他的对象。单说水杯的话就是一个类 ,因为有很多水杯,你这只是一个泛指而没有具体到哪一个。
对象都有两个方面,静态特征和动态方法。两个双胞胎长得一样,但从静态特征上面区分识别不了 因为他们长得都是一样的,但是当他们说话,做事情的时候你就可以分辨出来,因为他们有个动态的方法,两者都看你就可以分辨出来。所以类也有静态特征和动态行为,类里面管这两方面叫属性和方法。
有了属性和方法就能创建一个新的对象出来
类名 对象名 = new 类名();
这里面有个关键字 new ,new就是用来创建对象的,new出来的对象就可以给他赋予类中的属性和方法。
new对象出来的过程就需要构造器的加入。
构造器 (constructor)也叫构造方法一个在创建对象时被自动调用的特殊方法。
作用就是为对象进行初始化(成员变量)工作,通过构造器,可以按照构造器的结构产生一个对应的创建对象。
在创建对象的时候,如果类没有提供无参构造方法虚拟机就会为这个类提供一个无参构造方法,当这个类存在任何一个构造方法,虚拟机将不会提供。
构造方法名字跟类名相同,没有关键字。没有返回值,不能定义返回值类型,不能调用return,通过new关键字调用。
public 类名 (){}
值传递和引用传递:
值传递传的只是值,值传递类型都是基本数据类型。String也是。
引用传递传递的都是变量本身,有引用型的数据类型,类、数组、接口、对象。
类包含:属性(成员变量)、方法(成员方法)、构造方法(特殊方法)、代码块、结构体、内部类。
内存结构:栈 局部变量 名字
堆 new的对象 内容
类是公共的,都可以调用,类也可以调用类。