面向对象和数组(oop)

本文介绍了Java中的面向对象概念,包括对象作为数据及操作的结合体,类的抽象和类之间的交互。同时详细讲解了数组,包括数组的基本概念,定义方式,元素访问以及多种遍历数组的方法,如for循环、Arrays工具类和foreach语句。

1.面向对象

<1>基本概念

把数据及对数据的操作方法放在一起,作为一个相互依存的整体——对象。对同类对象抽象出其共性,形成类。类中的大多数数据,只能用本类的方法进行处理。类通过一个简单的外部接口与外界发生关系,对象与对象之间通过消息进行通信。程序流程由用户在使用中决定。对象即为人对各种具体物体抽象后的一个概念,人们每天都要接触各种各样的对象,如手机就是一个对象。

<2>内存结构

2.数组概述

<1>概念

数组是一种引用类型。变量只可以存放一个数据,数组则可以存放多个类型统一的数据,可以存放基本类型,也可以存放引用类型。

3.数组定义方式

声明并开辟数组:

数据类型 [] 数组名称 = new 数据类型[长度];

数据类型 [] 数组名称 = new 数据类型[长度];

4.数组元素访问

1,通过下标来找元素

#include <stdio.h>
​
main()
​
{
    int a[5];
​
    int i;
​
    for(i=0;i<5;i++)
​
    scanf("%d",&a[i]);
​
    printf("\n");
​
    for(i=0;i<5;i++)
​
    printf("%d",a[i]);
​
    printf("\n");
​
}

2,通过地址来找元素

#include <stdio.h>
​
main()
​
{
    int a[5];
​
    int p,i;
​
    for(i=0;i<5;i++)
​
        scanf("%d",&a[i]);
​
    printf("\n");
​
     for(i=0;i<5;i++)
​
    printf("%d",(a+i));
​
    printf("\n");
​
}
​

3,通过指针来找数组元素

#include <stdio.h>
​
main()
​
{
    int a[5];
​
    int *p,i;
​
    for(i=0;i<5;i++)
​
        scanf("%d",&a[i]);
​
    printf("\n");
​
     for(p=a;p<a+5;p++)
​
     printf("%d ",p);
​
}

5.数组的遍历

1.for循环遍历

通常遍历数组都是使用for循环来实现。遍历一维数组很简单,遍历二维数组需要使用双层for循环,通过数组的length属性可获得数组的长度。

package captain;  
  
public class ArrayDemo {  
      
    public static void main(String[] args) {  
        // TODO Auto-generated method stub  
        int arr[][] = new int[][]{{1},{2,3},{4,5,6}};  
          
        //for循环遍历二维数组。  
        for(int i = 0; i < arr.length; i++){  
            for(int j = 0; j < arr[i].length; j++){  
                System.out.print(arr[i][j]);  
            }  
            System.out.println();  
        }  
  
    }  
  
}  for(int i=0;i<list.size();i++){    
            Teacher t = (Teacher)list.get(i);    
            System.out.println(t.getName());    
        }    

2.Arrays工具类中toString静态方法遍历

利用Arrays工具类中的toString静态方法可以将一维数组转化为字符串形式并输出。

public static String printArray(int[] arr) {
int iMax = arr.length;
StringBuilder sb = new StringBuilder();
sb.append("[");
for(int i = 0;;i++){
sb.append(arr[i]);
if(i==iMax - 1){
return sb.append("]").toString();
​
}
sb.append(",");
}
​
}package captain;  
  
import java.util.Arrays;  
  
public class ArrayDemo3 {  
  
    public static void main(String[] args) {  
        // TODO Auto-generated method stub  
          
        //Arrays工具类的toString静态方法遍历二维数组。  
        int arr[][] = new int[][]{{9,8},{7,6,5}};  
        for(int i = 0; i < arr.length; i++){//循环得到一维数组  
            System.out.println(Arrays.toString(arr[i]));//将一维数组转化为字符串输出  
        }  
    }  
  
}  

3.foreach语句遍历

foreach循环,这种循环遍历数组和集合更加简洁。使用foreach循环遍历数组时,无须获得数组和集合长度,无须根据索引来访问数组元素,foreach循环自动遍历数组和集合的每一个元素。 注意:使用foreach循环迭代数组元素时,并不能改变数组元素的值,因此不要对foreach的循环变量赋值。

package captain;  
  
public class ArrayDemo2 {  
  
    public static void main(String[] args) {  
        // TODO Auto-generated method stub  
        int arr[][] = new int[][]{{4,3},{1,5}};  
          
        //foreach语句遍历二维数组。  
        System.out.println("数组中的元素是:");  
        for(int x[]:arr){  //外层遍历得到一维数组  
            for(int e:x){  //内层遍历得到数组元素  
                    System.out.print(e);  
            }  
            System.out.println();  
        }  
  
    }  
  
}  public static void main(String [] args){
int [] arr={1,2,3,4,5};
       for(int a:arr){
            a=0;
            System.out.print(a);
       }
       System.out.print(“\n”+a[0]);
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值