我在上海乐字节学习Java的第四天

数组的定义

  • 数组时相同类型数据的有序集合。
  • 数组描述的是相同类型的若干个数据,按照一定的先后次序排列而成的
  • 其中,每个数据称作一个数组元素,每个数组元素可以通过一个下标来访问他们

数组的声明与创建

  • 首先必须声明数组变量,才能在程序中使用数组,下面是声明数组变量的语法
`int[] num;//首选方法
int num[];//效果相同,但不是首选方法` 

*   1
*   2


  • java语言使用new操作符来创建数组,语法如下:
`int[] nums = new int[10];` 

*   1


  • 数组的元素是通过索引访问的,数组索引从0开始
  • 可通过array.length方法来获取数组长度

三种初始化

  • 静态初始化
`int [] num = {1,2,3,4,5};
Man[] mans = {new Man(1,1),new Man(2,3)};` 

*   1
*   2


  • 动态初始化
`int [] num = new int[10];
num[0]=1;
num[1]=2;` 

*   1
*   2
*   3


  • 数组的默认初始化
    • 数组是引用类型,它的元素相当于类的实例变量,因此数组一经分配空间,其中的每个元素也被按照实例变量同样的方式被隐式初始化

数组的四个基本特点

  • 其长度是确定的,数组一旦被创建,他的大小就是不可以改变的。
  • 其元素必须是相同类型,不允许出现混合类型
  • 数组中的元素可以是任何数据类型,包括基本类型和引用类型。
  • 数组变量属于引用类型,数组也可以看成是对象,数组中的每个元素相当于该对象的成员变量。数组本身就是对象,java中对象是在堆中,因此数组无论保存原始类型还是其他对象类型,数组对象本身是在堆中。

数组边界

  • 下表的合法区间:[0.length-1],如果越界就会报错;
`public static viod main(String[] args){
    int[] num = {1,2,3,4,5};
    System.out,println(num[5]);
    //会报错
}` 

*   1
*   2
*   3
*   4
*   5


  • 小结:
    • 数组是相同数据类型(数据类型可以为任意类型)的有序集合
    • 数组也是对象。数组元素相当于对象的成员变量
    • 数组长度是确定的,不可变的,如果越界,则报错;

数组使用

  • 普通的For循环
  • For-Each循环
  • 数组作方法入参
  • 数组作返回值

Arrays类

  • 数组的工具类java.util.Arrays
  • 由于数组对象本身并没有什么方法可以供我们调用,但API中提供了一个工具类供我们使用,从而可以对数据对象进行一些基本的操作。
  • 查看JDK帮助文档
  • Arrays类中的方法都是static修饰的静态方法,在使用的时候就可以直接使用ll类名进行调用,而不用使用对象来调用(注意:是不用而不是不能)
  • 具有以下常用功能
    • 给数组赋值:通过fill方法
    • 对比数组排序:通过sotr方法,按升序。
    • 比较数组:通过equals方法比较数组中元素是否相等
    • 查找数组元素:通过binartSearch方法能对排序好的数组进行二分查找发操作。

面向过程&面向对象

  • 面向过程思想
    • 步骤清晰简单,第一步做什么,第二部做什么。
    • 面对过程适合处理一些较为简单的问题
  • 面向对象思想
    • 物以类聚,分类的思维模式,思考问题首先解决问题需要哪些分类,然后对这些分类进行单独思考,最后,才对某个分类下的细节进行面向过程的思考
    • 面向对象适合处理复杂的问题,适合处理需要多人协作的问题

什么是面向对象

  • 面向对象编程{oop}
  • 面向对象编程的本质就是:以类的方式组织代码,以对象的组织(封装)数据
  • 抽象
  • 三大特性
    • 封装
    • 继承
    • 多态
  • 从认识论角度考虑是先有对象后有类。对象,是具体的事物。类,是抽象的。是对对象的抽象
  • 从代码运行的角度考虑是现有类后又对象。类是对象的模板

回顾方法及加深

  • 方法的定义
    • 修饰符
    • 返回类型
    • break:跳出switch,结束循环和return的区别
    • 方法名:注意规范就ok,见名知意
    • 参数列表:(参数类型,参数名)
    • 异常抛出:
  • 方法的调用:递归
    • 静态方法
    • 非静态方法
    • 形参和实参
    • 值传递和引用传递
    • this关键字

类与对象的关系

  • 类是一种抽象的数据累心,他是对某一类事物整体描述/定义,但是bb并不能代表某一个具体的事物
    • 动物、植物、手机、电脑
    • Person类、Pet类、Car类等、这些类都是用来描述、定义某一类具体的事物应该具备的特点和行为
  • 对象是抽象概念的具体实例
    • 张三就是人的一个具体实例,张三家里的旺财就是狗的一种实例
    • 能够体现出特点,展现出功能的是具体的实例,而不是一个抽象的概念

创建与初始化对象

  • 使用new关键字创建对象
  • 使用new关键字创建的时候,除了分配内存空间之外,还会给创建好的对象进行默认的初始化以及对垒中构造器的调用
  • 类中的构造器也称为构造方法,实在进行创建对象的时候必须要调用的。并且构造器有以下两个特点
    • 1.必须和类的名字相同
    • 2.必须没有返回类型,也不能写void
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,185评论 6 503
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,652评论 3 393
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,524评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,339评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,387评论 6 391
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,287评论 1 301
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,130评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,985评论 0 275
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,420评论 1 313
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,617评论 3 334
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,779评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,477评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,088评论 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,716评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,857评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,876评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,700评论 2 354