面向对象
1、面向对象:编程使用的一种思路,编程思想。
2、面向对象和面向过程:都是编程思想,面向过程是面向对象的基础,面向对象基于向面过程的。
3、面向过程:执行者。更强调解决问题的基本步骤 ,强调问题的解决方式,更强调的是方法。
面向过程编程思路:自顶向下,不断分解。
4、面向对象:指挥者。更强调问题的主体。更强调谁来解决这个问题,更强调的是数据,更强调的是对象。更强调谁拥有数据和操作数据的权力。编程思路,自底向上,不断拼装。
洗衣服:
面向过程:准备盆子,放洗衣粉,放水,搅拌,泡衣服,揉一揉,晾出来...
面向对象:找到洗衣机,衣服放进去,按按钮,拿出来。
5、面向对象的好处:
1.更符合人类的思想习惯,凡事喜欢找对象,找工具,找人,而不是找方法。
2.复杂的问题简单化。
3.由执行者变成了指挥者。
6、面向对象的特征:
封装、 继承、 多态
类和对象
1、类:对一类事物事物特征的抽象的结果
对象:事物的具体表现
2、类就是一组相关属性和行为定义的集合。
属性:对于事物特征的描述,一般是名词或者形容词。
行为:对于事物功能的描述,一般是一个动宾结构。
java中,类的属性就是一个成员属性来表示,功能就是一个成员方法来描述。
3、 .class 字节码文件,在一个源文件中,可以存储多个类
4、对象的创建和使用
类名 对象名 = new 类名();
new:关键字,在堆内存中开辟了一块空间,用于存储该类型的数据。
():构造方法
5、访问属性
对象名.属性名;
赋值 对象名.属性名 = 属性;
访问方法
对象名.方法名();
6、
class Test { public static void main(String[] args) { Person p = new Person(); p.name = "qq"; p.age = 2; p.run(); } } class Person { String name; int age; public void run(){ System.out.println("我叫"+name+"我"+age+"岁了,我会跑了"); } }
7.创建对象时的内存理解
(1)
(2)
创建对象的步骤:
1、将要创建的对象所属的类型加载到方法区,形成Car.class的字节码
2、在栈内存中创建一个Car类型的引用,将来用于存储堆内存中对象的地址
3、在对内存中开辟空间,给各个成员变量分配内存
4、给对象中的成员变量进行默认的初始化赋值
5、将对象的地址,赋值给栈内存中的引用
(3)内存图示的说明:
1、第一次使用某个类型的时候,会将该类型的字节码加载到方法区,第二次使用的时候,不需要重复加载
2、在创建的对象中,默认隐含了一个字节码的地址,将来可以通过对象找到创建自己的字节码
3、哪个对象调用方法,方法的栈帧中,就默认隐含了该对象的地址
4、每次使用new关键字,都会在堆内存中开辟一段新的空间。