面向对象(oo)编程

本文探讨了面向对象编程(OOP)的概念,包括面向过程与面向对象的区别,以及面向对象的核心——类与对象。类是对对象的抽象,而对象则是具体的实例。在Java中,除基本类型外的所有类型都是引用类型。类包含属性,属性定义了类或对象的数据,并且在整个类体的作用范围内有效。成员变量如果没有初始化,Java会赋予默认值。

面向过程(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方法是供程序员用来释放对象或资源的方法,但是尽量少用。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值