面向过程(c语言) 面向对象(java)
线性思维解决(简单事物) (复杂过程)
1.面向对象编程(oop)的本质:以类的方式组织代码,以对象的方式组织(封装)数据。
类:对对象的抽象 (抽出象的部分) 对象:具体的事务
先有具体对象,然后抽象各个对象之间象的部分,归纳出类通过类再认识其他对象。
对象和类的关系:从特殊到一般从具体到抽象。 类是一个对象的模板。
JAVA中除基本类型外的都叫引用(reference)类型。
2.类的属性(filed)
属性用于定义该类或该类对象包含的数据或者说是静态属性。
属性作用范围是整个类体。
定义成员变量可以初始化,要不java使用默认值对其自动初始化(数值:0,0.0 char:\u0000 boolean:false 所有引用类型null)
内存分析:
public class Student{ //静态的数据 String name; int id; int age; String gender; int weight; //动态行为 public void study(){ System.out.println(name+"学习"); } public void sayHello(string sname){ System.out.println(name+"向"+sname+"说:你好"); } public static void main(String[] args){ Student s1=new Student(); s1.name="耿凌轩"; s1.study; s1.sayHello("java"); Student s2=new Student(); s2.age=18; s2.name="老耿"; } }
以上面代码为例:
栈:自动分配连续的空间,后进先出 (放置局部变量)s1
堆:不连续的空间 (放置new出来的对象)
name:null;id:0;age:0;gender:null;weight:0;study:地址 指向应指向地址 sayHello:地址 同样的
方法区也是堆(存放类的信息即代码,static变量,常量池即字符串常量...)
study类信息 1.代码 一堆属性 study()... sayHello()... 2.static变量 3.常量池(字符串常量... 耿凌轩,老耿)
垃圾回收机制(Garbage Collection)
要点: 1.程序员无权调用垃圾回收器
2.程序员可以通过System.gc()通知其运行,但不能保证其运行
3.finalize方法是供程序员用来释放对象或资源的方法,但是尽量少用。
本文探讨了面向对象编程(OOP)的概念,包括面向过程与面向对象的区别,以及面向对象的核心——类与对象。类是对对象的抽象,而对象则是具体的实例。在Java中,除基本类型外的所有类型都是引用类型。类包含属性,属性定义了类或对象的数据,并且在整个类体的作用范围内有效。成员变量如果没有初始化,Java会赋予默认值。
1980

被折叠的 条评论
为什么被折叠?



