1.面向对象概述

面向对象是java语言的核心。是对应于面向过程而言的。

  • 面向过程:强调的是过程,即动作。在java中动作就是函数。C语言就是面向过程的。

如:把大象装进冰箱需要几步?

答:需要三步:

  1. 打开冰箱
  2. 把大象装进去
  3. 关上冰箱

我们把上面的问题,用面对对象的思想来考虑。

我们把冰箱作为一个对象,它具备打开,存储,关闭的功能。这个时候,我们就只需要冰箱这个对象就可以完成把大象装进冰箱中。即,冰箱打开,存储,冰箱关闭。

  • 面向对象的特点:
  1. 面向对象是一种常见的思想,符合人们的思考习惯。
  2. 面向对象的出现,把复杂的东西简单化了。
  3. 面向对象的出现,让面向过程中的执行者变成了面向对象中的指挥者。

2.类和对象的联系

我们可以用类(class)来描述事物的特点,一般需要定义属性和行为。

如:我们可以创建一个Car类用来描述轿车类。

class Car{
int trieNum;//定义轿车类的轮胎数
String paintColor;//定义轿车类的喷漆颜色 //定义一个轿车行驶的行为
void run(){
System.out.println(trie+"个轮胎“+paintColor+”色的轿车正在行驶...");
}
}

接下来,我们使用new关键字来创建一个Car类的对象,来执行行驶的行为。

class Test{
public static void main(String[] args){
Car myCar = new Car();//通过new关键字来创建一个Car类的对象,用Car类型的变量来接收
myCar.trieNum = 4;//设置Car对象的轮胎数为4
myCar.paintColor = "red";//设置Car对象的颜色为"red"
myCar.run();//用创建的Car类对象来执行行驶方法
}
}

程序运行的结果为:4个轮胎red色的轿车正在行驶...

注意:类的对象在堆内存中,所以类的属性都有相应的默认值,即使不设置轮胎数和颜色,也可以运行,结果为:0个轮胎null色的轿车正在行驶...

考虑如下代码在内存中分配

Car c1 = new Car();
Car c2 = c1; c1.trieNum = 5;
c2.paintColor = "red"; c1.run();

说明:第一句代码,在栈内存中创建一个Car类型的c1变量,接着在堆内存中创建一个Car类的实例对象,并分配一个地址值,在这个实例中,有两个变量,分别是int型的trieNum和String类型的paintColor并初始化为0和null;最后把这个地址值赋给c1.

第二句代码是说把c1的值,即指向堆内存中实例的地址值,赋值给c2,这样c1和c2同时指向了堆内存中的同一个实例。

然后用c1或c2操作时,其实操作的是一个对象,所以最后运行c1的run方法,得到的结果是:5个轮胎red色的轿车正在行驶...

3.局部变量和成员变量的区别

1.作用域:

  • 局部变量定义在函数,语句,局部代码块中,只有在所属的区域有效。
  • 成员变量定义在类中,整个类的范围都可以访问。

2.内存中的分布:

  • 局部变量存在于栈内存的方法区中。
  • 成员变量存在于堆内存中的实例对象中。

3.存活的时间:

  • 成员变量随着对象的创建而存在,随着对象的消失而消失。
  • 局部变量随着所属区域的执行而存在,随着所属区域的结束而释放。

4.默认初始化值:

  • 成员变量都有默认初始化值。
  • 局部变量没有默认初始化值。

[java学习笔记]java语言核心----面向对象基础的更多相关文章

  1. [java学习笔记]java语言核心----面向对象之this关键字

    一.this关键字 体现:当成员变量和函数的局部变量重名时,可以使用this关键字来区别:在构造函数中调用其它构造函数 原理:         代表的是当前对象.         this就是所在函数 ...

  2. [java学习笔记]java语言核心----面向对象之构造函数

    1.构造函数概念 特点: 函数名与类名相同 不用定义返回值类型 没有具体的返回值 作用:                给对象进行初始化 注意: 默认构造函数 多个构造函数是以重载出现的 一个类中如果 ...

  3. Java学习笔记:语言基础

    Java学习笔记:语言基础 2014-1-31   最近开始学习Java,目的倒不在于想深入的掌握Java开发,而是想了解Java的基本语法,可以阅读Java源代码,从而拓展一些知识面.同时为学习An ...

  4. JavaSE学习笔记(2)---面向对象基础

    JavaSE学习笔记(2)---面向对象基础 1.面向对象具有三大特征:封装性.继承性和多态性,而面向过程没有继承性和多态性,并且面向过程的封装只是封装功能,而面向对象可以封装数据和功能.所以面向对象 ...

  5. 【疯狂Java学习笔记】【理解面向对象】

    [学习笔记]1.Java语言是纯粹的面向对象语言,这体现在Java完全支持面向对象的三大基本特征:封装.继承.多态.抽象也是面向对象的重要组成部分,不过它不是面向对象的特征之一,因为所有的编程语言都需 ...

  6. 我的Java学习笔记-Java面向对象

    今天来学习Java的面向对象特性,由于与C#的面向对象类似,不需详细学习 一.Java继承 继承可以使用 extends 和 implements 这两个关键字来实现继承. extends:类的继承是 ...

  7. Java学习笔记-Java概述和环境配置

    基础常识 软件:一系列按照特定顺序组织的计算机数据 和指令的集合 常见的软件: 系统软件:如:DOS,windows,Linux等 应用软件:如:扫雷,迅雷,QQ等 软件的出现实现了人与计算机之间的更 ...

  8. java学习笔记----java入门

    java基础 一.java语言跨平台原理 1.什么是跨平台? 跨平台就是一个软件可以在不同的操作系统中运行,但是不需要对其修改.换句话说,java语言编写的软件在不做修改的情况下就能在不同的系统平台上 ...

  9. Java学习笔记 -- Java定时调度工具Timer类

    1 关于 (时间宝贵的小姐姐请跳过) 本教程是基于Java定时任务调度工具详解之Timer篇的学习笔记. 什么是定时任务调度 基于给定的时间点,给定的时间间隔或者给定的执行次数自动执行的任务. 在Ja ...

  10. [Java学习笔记] Java异常机制(也许是全网最独特视角)

    Java 异常机制(也许是全网最独特视角) 一.Java中的"异常"指什么 什么是异常 一句话简单理解:异常是程序运行中的一些异常或者错误. (纯字面意思) Error类 和 Ex ...

随机推荐

  1. Delphi7 第三方控件1stClass4000的TfcImageBtn按钮控件动态加载jpg图片例子

    Delphi7 第三方控件1stClass4000的TfcImageBtn按钮控件动态加载jpg图片例子 procedure TForm1.Button1Click(Sender: TObject); ...

  2. Android 滑动效果基础篇(三)—— Gallery仿图像集浏览

    Android系统自带一个Gallery浏览图片的应用,通过手指拖动时能够非常流畅的显示图片,用户交互和体验都很好. 本示例就是通过Gallery和自定义的View,模仿实现一个仿Gallery图像集 ...

  3. Online ddl 思维导图

    http://blog.itpub.net/22664653/viewspace-2056953/   整理一份 MySQL DDL 的思维导图,介绍5.5版本以及之前 和 5.6 版本的 MySQL ...

  4. JavaScript eval() Function

    Evaluate/Execute JavaScript code/expressions: Example var x = 10;var y = 20;var a = eval("x * y ...

  5. Ng-include 例子

    <body> <div ng-app="myApp"> <div ng-controller="firstController"& ...

  6. Linux编程之《守护进程》

    Intro ----- 守护进程,也就是通常说的Daemon进程,是Linux中的后台服务进程.它是一个生存期较长的进程,通常独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件.守护进程常 ...

  7. BloomFilter——读数学之美札记

    之前接触过bitmap,读吴军先生的数学之美,看到了一个更强大的数据结构,布隆过滤器(Bloomfilter),赶紧记下来吧,忘了怪可惜的. bitmap的使用是很有局限性的,往往只能用于海量数值型数 ...

  8. jquery 实现图片跳动。提示作用

    需要做几件事: 第一:样式表定义 .red { border: 2px solid #ffffff; } 第二:定义抖动函数 function shake(ele, cls, times) { var ...

  9. Log4Net(三)之记录日志到数据库

    前面两篇短文向大家介绍了如何使用log4net,以及如何将log4net记录到文本文件中.下面本文将向大家介绍如何将log4net记录到数据库中. 经过前面的介绍,我想大家对使用log4net的过程已 ...

  10. HUST 1017 Exact cover (Dancing links)

    1017 - Exact cover 时间限制:15秒 内存限制:128兆 自定评测 6110 次提交 3226 次通过 题目描述 There is an N*M matrix with only 0 ...