JAVA-04面向对象

【面向过程与面向对象】
面向过程只能解决简单的问题,列出解决问题的步骤即可,但功能很大的时候,就不能用这种思想;
面向对象能够更加方便地管理资源,将属性与方法封装到类里,而方法始终需要用到面向过程的思想;
类可以看做是一个模板(抽象),系统根据类的定义来选出对象;
【类】
class 类名{
    属性;
    int a;
    方法;
    void fun(){
    
    }
    类名(){//构造函数;创建对象时执行;
    
    }
    ~类名(){//析构函数;销毁对象时执行;
    
    }
}

【容易造成内存泄露的操作】
1.创建大量无用的对象
比如,我们在需要大量拼接字符串时,使用了String而不是StringBuilder;
String str = "";
for(int i=0; i<10000; i++){
    str+=i;//相当于产生了10000个String对象;
}
2.静态集合类的使用
像HashMap、Vector、List等的使用最容易出现内存泄露,这此静态变量的生命周期和应用程序一致,所有的对象Object也不能被释放;
3.各种连接对象(IO流对象、数据库连接对象、网络连接对象)未关闭;
IO流对象、数据库连接对象、网络连接对象等连接对象属于物理连接,和便盘或者网络连接,不使用的时候一定要关闭;
4.监听器的使用
释放对象时,没有删除相应的监听器;
【创建对象】
1.分配对象空间,并将对象成员变量初始化为0或空;
2.执行属性值的显式初始化;
3.执行构造函数;
4.返回对象的地址给相关的变量;
构造方法用于对象的初始化,静态初始化用于类的初始化操作;

【参数传递】
java中,方法中所有参数都是“值传递”;
基本数据类型参数的传值:传递的值的副本,副本改变不会影响原件;
引用类型参数传值:改了副本指向地址对象的值时,也意味着原参数指向对象的值也发生改变;

【包机制】
包机制是java中管理类的重要手段,开发中,我们会遇到大量同名的类,通过包我们很容易对解决类重名的问题,也可以实现对类的有效管理;包对于类的作用相当于文件夹对于文件的作用;
1.通常是第一句非注释性语句;
2.包名:域名倒着写即可,再加上模块名,便于内部管理类;
注意:
1.写项目时都要加包,不要使用默认的包;
2.com.li和com.li.car,这两个包没有包含关系,是两个独立的包;
使用的时候,直接导入,方法如下:
import xxx.类名
如果是多个类,可以import xxx.*;

【与C++对比】


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值