浅谈JAVA数组与对象

数组的定义: int [ ] array=new int[ ];
JAVA中数组在堆上。
如果数组不进行初始化,默认所有元素为0。
System.out.pritln(Arrays.toString(array)) ; //以字符串的形式打印数组。
二维数组 int [ ] [ ] array = new int [行数] [列数],二维数组每个元素用{ }括起来,如:{(1,2),(3,4),(5,6)}

Arrays.deepToString(array);//打印二维数组
Arrays.sort(array);//给数组进行排序
Arrays.binarySearch(byte[] a, int fromIndex, int toIndex,  byte key)// 此处数组必须为有序数组

数组的拷贝,拷贝方式有:for , clone, System.arraycopy() , Arrays.copyof()
以上四种方式对于基本类型都为深拷贝,对引用类型为浅拷贝。
用for循环拷贝数组:

import java.util.Arrays;

public class TestDemo {
    public static void main(String[] args) {
        int[] array1=new int[]{1,2,3,4,5,6};
        int[] array2=new int[array1.length];
        System.out.println(Arrays.toString(array1));
        System.out.println(Arrays.toString(array2));
        for(int i=0;i<array1.length;i++){
            array2[i]=array1[i];
        }
        System.out.println(Arrays.toString(array1));
        System.out.println(Arrays.toString(array2));
    }
}

用clone拷贝数组:

import java.util.Arrays;

public class TestDemo {
    public static void main(String[] args) {
        int[] array1=new int[]{1,2,3,4,5,6};
        int[] array2=new int[array1.length];
        System.out.println(Arrays.toString(array1));
        System.out.println(Arrays.toString(array2));
        array2=array1.clone();
        System.out.println(Arrays.toString(array1));
        System.out.println(Arrays.toString(array2));
    }
}

用System.arraycopy()
无返回值
该方法速度最快

import java.util.Arrays;

public class TestDemo {
    public static void main(String[] args) {
        int[] array1=new int[]{1,2,3,4,5,6};
        int[] array2=new int[array1.length];
        System.out.println(Arrays.toString(array1));
        System.out.println(Arrays.toString(array2));
        System.arraycopy(array1,0,array2,0,array1.length);
        System.out.println(Arrays.toString(array1));
        System.out.println(Arrays.toString(array2));
    }
}

用Arrays.copyof()拷贝
有返回值

import java.util.Arrays;

public class TestDemo {
    public static void main(String[] args) {
        int[] array1=new int[]{1,2,3,4,5,6};
        int[] array2=new int[array1.length];
        System.out.println(Arrays.toString(array1));
        System.out.println(Arrays.toString(array2));
        array2=Arrays.copyOf(array1,array1.length);
        System.out.println(Arrays.toString(array1));
        System.out.println(Arrays.toString(array2));
    }
}

面向对象的三大特征:封装性,多态性,继承性。
OOA:面向对象分析
OOD:面向对象设计
OOP:面向对象编程
类的组成:属性和方法。
对象属性初始化的方式: 1.提供一系列set. get方法。
2.通过构造函数。(构造函数也会发生重载)
3.静态代码块,实例代码块。

对象的产生需要:①.为对象开辟内存。
②.调用合适的构造函数。

封装性体现在private.

继承性。 用extends
class 子类 extends 父类
如:

class Person{
    private String name;
    private int age;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
}
class Student extends Person{

}//实现了继承
public class TestDemo {
    public static void main(String[] args) {
        Student student=new Student();
        student.setName("小马哥");
        student.setAge(22);
        System.out.println("姓名:"+student.getName()+'\n'+"年龄:"+student.getAge());
    }
}

对子类进行扩充
需在上个代码定义子类处加入需要扩充的属性,且进行初始化。如下图:
在这里插入图片描述
向上转型:

class Father {
    public void printle(){
        System.out.println("爸爸");
    }
}
class Son extends Father{
    public void printle(){
        System.out.println("儿子");
    }
}
public class TestDemo{
    public static void main(String[] args) {
        Father f =new Son();
        f.printle();
    }
}//输出结果为“儿子”,发生了覆写

覆写(override):函数名相同,参数列表相同,返回值相同
final:变量加上final后不能被修改,是用final定义的类不能有子类。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值