我的java学习路之类和对象

java是面向对象而非过程,怎么解释呢?

当我们遇到一个问题首先会思考第一步要怎么做,第二步要怎么做,这,是面向过程的思维,是一种简单的线性思维

而面向对象就是简化问题,抽出局部,而不去纠结细节,将问题进行分类单独处理,不过最终也会对分类下的细节问题进行面向过程的思考

那么好处是什么,我认识是将大问题分成几个小问题然后一一解决,而不是从整体去思考怎么解决这个大问题,这很费脑

那么对象是什么?是一种抽象,将现实世界中可以明确标识的实体,看做一个对象,而将这些实体所独有的一些特征标识封装在一起,一个类中

那为什么叫面向对象而不是面向类,我觉得是从人的角度去观察世界而不是机器,所以把实体当作对象来会更好理解

而每一个对象都有行为,称之为动作,我们可以在类中定义一个方法来实现这个行为

那么怎么定义一个类?

首先有类名,有数据域,有无参、有参构造方法,方法。比如:

//定义一个人的类People

class People{

//定义类的属性,名字name,年龄age,这些就是数据域

  String name = "wzw";

  int age = "25";

//这是无参构造方法,和类同名

  people(){

}

//这是有参构造方法

  people(int age){

  if(age>18){

 System.out.print("成年啦");

}else{

  System.out.print("未成年");

}

}

//这是一个说话的方法(行为)

  public void speak(){

  System.out.println("我说中文");

}

}

构造方法是什么?是一种特殊的方法,有一下特殊性:

1.构造方法必须与所在类名相同

2.构造方法没有返回值,连void 也不行

3.构造方法是在创建一个对象使用new操作符是调用的,作用就是初始化对象

4.如果我们没有定义构造器(构造方法),则系统会自动定义一个无参的构造方法

前面说过怎么访问对象,是通过引用变量和引用类型  类名  对象引用变量 = new 类名();

之前说到java的基本数据类型和引用类型,在这里:

对基本数据类型变量来说,对应内存所存储的值是基本数据类型,而引用类型,对应内存所存储的只是一个引用,是对象的存储地址

这里来扩展一下,

栈:

1.每个线程私有,不能实现线程间的共享

2.局部变量是放在栈中的

3.栈是由系统自动分配的速度快,而且栈是一个连续的空间

堆:

1.放置new 出来的对象

2.不是一个连续的空间

方法区(也是堆)

1.被所有线程共享

2.用来存放程序中永远不变或唯一的内容

java的垃圾回收机制:将对象赋值为null,或者该对象没任何指向时,系统会不定时扫描一遍,当空闲时就会把该分配的空间回收回来。

程序员可以通过System.gc().通知GC运行,但布保证会立即执行,finalize方法是用来释放对象或资源的,但尽量少用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值