三、java数组

主要内容:数组概述、一维数组声明、数组元素的引用、数组元素的默认初始化、创建数组、数组初始化、多维数组、多维数组初始化、数组排序

1.数组概述

数组是多个相同类型数据的组合,实现对这些数据的统一管理。

数组中的元素可以是任何数据类型,包括基本类型和引用类型。

数组属于引用类型,可以理解为对象(Object),数组中的每个元素相当于该对象的成员变量。

数组一旦初始化,长度不可变。

2.一维数组声明

一维数组的声明方式: type  var[] 或 type[]  var;

例如:

int a[];

int[] a1;

double  b[];

Mydate []c;   //对象数组

单独声明数组时不能指定其长度(数组中元素的数), 例如: int a[5];    //非法

3.数组元素的引用

Java中可以使用关键字new创建数组对象

定义并用运算符new为之分配空间后,才可以引用数组中的某个元素;

每个数组都有一个属性 length 指明它的长度,例如:a.length 指明数组 a 的长度(元素个数)

数组元素的引用方式:数组名[数组元素下标]

数组元素下标可以是整型常量或整型表达式。如a[3] , b[i] , c[6*i]

数组元素下标从0开始;长度为n的数组合法下标取值范围: 0 至 n-1

4.数组元素的默认初始化

数组是引用类型,它的元素相当于类的成员变量,因此为数组分配空间后,其中的每个元素也被按照成员变量同样的方式被隐式初始化。例如:

public class Test {

public static void main(String argv[]){

int a[]= new int[5];

System.out.println(a[3]); //a[3]的默认值为0

}

}

5.创建数组

Java中使用关键字new 创建数组对象

int[] scores=new int[]{99,88,77,55,22};

*分配空间

语法:数组名=new 数据类型[数组长度]

例:int scores[];

scores=new int[5];

合并:int scores[]=new int[5];

6.数组初始化

动态初始化:数组定义与为数组元素分配空间并赋值的操作分开进行。

静态初始化:在定义数组的同时就为数组元素分配空间并赋值。

补充:数组名.length用于获取数组长度

*输出scores数组的元素

for(i=1;i<=scores.length;i++){

System.out.println(scores[]);

}

7.二维数组

声明并分配空间:数据类型[][]数组名=new数据类型[行数][列数]

int[][] num=new int[2][3];

或:int[][] num;

num=new int[2][3];

8.使用Arrays类操作java中数组

(使用Arrays类必须使用import java.util.Arrays;

public class Account{}导入包)

(1)排序:Arrays.sort(数组名);

(2)将数组转换为字符串:Arrays.toString(数组名);

(3)foreach操作数组:语法:for(元素类型 元素变量:遍历对象)

{执行代码}

9.冒泡排序

基本语法实例:

public static void PubbleSort(int[] array){

int temp;

for(int x = 0; x < array.length - 1; x++ ){for(int y = 0; y < array.length - 1 - x; y++){

if(array[y] > array[y+1]){                  temp = array[y];

array[y] = array[y+1];

array[y+1] = temp;

}

}

}

for(int z = 0; z < array.length ; z++){

System.out.print(array[z]+" ");

}

}

10.for-Each语句(用来遍历数组中所有元素)

一般语法:for(数据类型 变量:遍历对象){

执行语句}

示例:

一般访问一个数组使用的格式:

int sum=0;

int[] nums={1,2,3,4,5,6,7,8,9};

for(int i=0;i<nums.length;i++){

sum+=nums[i];

}

使用for-Each语句遍历:

int sum=0;

int[] nums={1,2,3,4,5,6,7,8,9};

for(int i:nums){

sum+=i;}

访问多维数组语法:

int nums[][]=new int[5][5];

for(int x[]:nums)

for(int y:x)

//对元素进行操作

四、类和对象

主要内容:

类和对象、信息的封装和隐藏、构造方法、方法的重载、this 关键字、package/import语句

面向对象三特征:封装、继承、多态性

1.类(class)和对象(object):是面向对象方法的核心概念。类是对一类事物描述,是抽象的、概念上的定义;对象是实际存在的该类事物的每个个体,因而也称实例(instance)。

2.定义类:

语法格式:

[< 修饰符>] class < 类名> {

[<属性>]

[<构造器>]

[<方法>]

}

说明:修饰符public:类可以被任意访问

类的正文要用{  }括起来

举例:

public class  Person{

private int age ;             //声明私有变量 age

public void setAge(int i) { //定义公有方法setAge

age = i;

}

}

3.对象可通过属性“attribute”和方法“method”来分别对应事物的静态属性和动态属性。

4.属性——对象具有的各种特征

定义属性:

语法格式:

[<修饰符>]  类型  < 属性名> [=初值] ;

说明:修饰符 private: 该属性只能由本类的方法访问。

修饰符 public: 该属性可以被本类以外的方法访问。

类型:任何基本类型,如int、boolean或任何类。

举例:

public class Person{

private int age;             //声明private变量 age

public String name =“Jack”; //声明public变量 name

}

属性有时也称为:数据成员(数据),成员变量(变量)

5.定义方法:

语法格式:

<修饰符> <返回类型> <方法名>([< 参数表>]) {

[< 语句>]

}

说明: 修饰符:public,private,protected 等。

返回类型:return语句传递返回值。没有返回值:void。

举例:

public class Person{

private int age;

public int getAge()  { return age; }

public void setAge(int i) {

age = i;

}

}

6.对象的创建和使用

使用new+构造方法创建一个新的对象;

使用“对象名.对象成员”的方式访问对象成员(包括属性和方法);

创建新的对象之后,我们就可以使用“ 对象名.对象成员 ”的格式,来访问对象的成员。

示例:

class TestPerson

{

public static void main(String[] args)

{

Person p1 = new Person();

Person p2 =new Person();

p1.age = 20;

p1.shout();

p2.shout();

}

}

java总结第二次//数组及面向对象的更多相关文章

  1. Java阶段性测试--知识点:数组,面向对象,集合、线程,IO流

    #Java基础测试 涉及知识点:数组,面向对象,重载,重写,继承,集合,排序,线程,文件流 一.多项选择题(可能是单选,也可能是多选) 1.下列标识符命名不合法的是(   D  ). A.$_Name ...

  2. 杨其菊201771010134《面向对象程序设计Java》第二周学习总结

    第三章 Java基本程序设计结构 第一部分:(理论知识部分) 本章主要学习:基本内容:数据类型:变量:运算符:类型转换,字符串,输入输出,控制流程,大数值以及数组. 1.基本概念: 1)标识符:由字母 ...

  3. 201871010106-丁宣元 《面向对象程序设计(java)》第二周学习总结

    丁宣元 <面向对象程序设计(java)>第二周学习总结 正文开头 项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在 ...

  4. 2017面向对象程序设计(Java)第二周学习总结

    2017面向对象程序设计(Java)第二周学习总结 直系学妹学弟们好!额...不要问我为什么把学妹放前面,我也不知道!我只是你们和蔼可亲的学长一枚而已.也不要问为什么是第二周学习总结而不是第一周,因为 ...

  5. JAVA之旅(三)——数组,堆栈内存结构,静态初始化,遍历,最值,选择/冒泡排序,二维数组,面向对象思想

    JAVA之旅(三)--数组,堆栈内存结构,静态初始化,遍历,最值,选择/冒泡排序,二维数组,面向对象思想 我们继续JAVA之旅 一.数组 1.概念 数组就是同一种类型数据的集合,就是一个容器 数组的好 ...

  6. 第二十四节:Java语言基础-讲解数组的综合应用

    数组的综合应用 // 打印数组 public static void printArray(int[] arr) { for(int x=0;x<arr.length;x++) { if(x!= ...

  7. java的第二个实验——JAVA面向对象程序设计

    java的第二个实验——JAVA面向对象程序设计 北京电子科技学院 实     验    报     告 课程:Java程序设计 班级:1352 姓名:林涵锦 学号:20135213 成绩:      ...

  8. 201771010123汪慧和《面向对象程序设计Java》第二周学习总结

    一.理论知识部分 1.标识符由字母.下划线.美元符号和数字组成, 且第一个符号不能为数字.标识符可用作: 类名.变量名.方法名.数组名.文件名等.第二部分:理论知识学习部分 2.关键字就是Java语言 ...

  9. JAVA之旅(四)——面向对象思想,成员/局部变量,匿名对象,封装 , private,构造方法,构造代码块

    JAVA之旅(四)--面向对象思想,成员/局部变量,匿名对象,封装 , private,构造方法,构造代码块 加油吧,节奏得快点了 1.概述 上篇幅也是讲了这点,这篇幅就着重的讲一下思想和案例 就拿买 ...

随机推荐

  1. RabbitMQ学习总结 第四篇:发布/订阅 Publish/Subscribe

    目录 RabbitMQ学习总结 第一篇:理论篇 RabbitMQ学习总结 第二篇:快速入门HelloWorld RabbitMQ学习总结 第三篇:工作队列Work Queue RabbitMQ学习总结 ...

  2. iOS 开发知识小集(1)

    iOS 开发知识小集(1) 2015-05-15  iOS大全 (点击上方蓝字,快速关注我们) 一直想做这样一个小册子,来记录自己平时开发.阅读博客.看书.代码分析和与人交流中遇到的各种问题.之前有过 ...

  3. HtmlAgilityPack教程

    解析html教程(重点) http://www.cnblogs.com/kissdodog/archive/2013/02/28/2936950.html 完整的教程 http://www.cnblo ...

  4. 项目管理利器——Maven

    假设公司要开发一个新的Web项目,使用目前流行的struts2.spring.MyBatis进行新项目开发.那么接下来首先要进行的工作就是各个框架的jar包的下载.大家通常的做法是先到struts2的 ...

  5. Paramiko 模块使用

    一.安装,下载 1.下载安装 pycrypto-2.6.1.tar.gz (apt-get install python-dev) 解压,进入,python setup.py build[编译],py ...

  6. 用仿ActionScript的语法来编写html5——第七篇,自定义按钮

    第七篇,自定义按钮这次弄个简单点的,自定义按钮.其实,有了前面所定义的LSprite,LBitmap等类,定义按钮就很方便了.下面是添加按钮的代码, function gameInit(event){ ...

  7. javascript设计模式学习之十四——中介者模式

    一.中介者模式的定义和应用场景 中介者模式的作用在于解除对象之间的紧耦合关系,增加一个中介者之后,所有对象都通过中介者来通信,而不是互相引用,当一个对象发生变化的时候,仅需要通知中介者即可.从而将网状 ...

  8. CNContact对通讯录的基本使用(增删改查)

    /** * 注意:iOS9才有能使用 * 首先在工程里导入ContactsUI.framework和Contacts.framework两个框架 * * * 源代码的链接地址 * 链接: http:/ ...

  9. .Net Framework 4.5.2 on Windows 10

    I was using Visual Studio 2013 to create a new solution, could not select ".NET Framework 4.5.2 ...

  10. SmartGit as SVN Bridge

    This page provides an introduction to SmartGit from an SVN users perspective and shows how the SVN w ...