java数组复制与面向对象(属性与方法)设计(day04)

数组的复制(浅拷贝与深拷贝)

package com.atfqs.java;
public class ArrayTest2 {
	public static void main(String[] args) {
		int[] arr1 = new int[]{1,2,3};
//		int[] arr2;
//		arr2 = arr1;//浅拷贝 只复制了地址值,修改了都改了,有几个new就用到了堆里面的空间数组的个数
//		arr2[0] = 123;
//		for(int a:arr1){
//			System.out.print(a+" ");
//		}
		//数组的复制 深拷贝 谁都不影响谁
		int[] arr3 = new int[arr1.length];
		for(int i = 0;i < arr1.length;i++){
			arr3[i] = arr1[i];
		}
		arr3[0] = 123;
		System.out.print("arr1:");
		for(int a:arr1){
			System.out.print(a+" ");
		}
		System.out.print("arr3:");
		for(int a:arr3){
			System.out.print(a+" ");
		}
	} 
}

arrays工具类(减少自己的代码量)的使用常用的举例,具体看API开发文档

 数组的异常:ArrayIndexOutOfBoundsException 下标越界

                       NullPointerException  空指针异常

 面向对象(重点)

     初识面向对象

/*
 * 一java面向对象学习的三条主线
 * java类以及类的成员:属性 方法 构造器 代码块 内部类
 * 面向对象的三大特征:封装 继承 多态
 * 其他关键字 this super static final abstract interface package import等
 * 题目:人把大象装进冰箱
 * 面向过程:1打开冰箱 2 抬起大象塞进冰箱 3 关上冰箱
 * 面向对象: 强调具备功能的对象,以类/对象为最小的单位,考虑谁来做 关注主体
 * 人{
 *     打开(冰箱){
 *       冰箱.开开();
 *     }
 *     
 *     抬起(大象){
 *       大象.进入(冰箱);
 *     }
 *     关闭(冰箱){
 *        冰箱.闭合();
 *     }
 * }
 * 冰箱{
 *     开开();
 *     闭合();
 * }
 * 大象{
 *    进入(冰箱){
 *    }
 * }
 */

类: 对一类事物的描述,是抽象的,概念上的定义

对象:实际存在的该类事物的每一个个体,因而也被称为实例

 面向对象设计就是设计类          设计类就是设计类中的成员

类与对象的使用

1创建类 设计类的成员

2 创建类的对象

3 通过 “对象.属性“ ”对象.方法”调用对象的结构

package com.atfqs.java;
public class PersonTest {
	public static void main(String[] args) {
	    Person p1 = new Person();//造对象
	    p1.name = "Tom";//调用类属性 对象.属性
	    p1.talk("中文");//调用类方法  对象.方法	    
	    //**************************
	    Person p2 = new Person();//对象的默认属性null
	    System.out.println(p2.name);//如果创建了一个类的多个对象,则每个对象都拥有一套类的属性(非static的)
	    
	    Person p3 = p1;//浅拷贝
	    p3.name = "Jack";
	    System.out.println(p1.name);
	}
}
class Person{//造类
	//属性 = 成员变量 = field = 域 字段
	String name;
	int age;
	boolean isMale;
	//方法 = 成员方法 = 函数 = method 
    public void eat(){
    	System.out.println("人可以吃饭");
    }  
    public void sleep(){
    	System.out.println("人可以睡觉");
    }   
    public void talk(String language){
    	System.out.println("人可以说话,使用的语言:"+language);
    }
		
}

类与对象的内存解析

 类中属性成员变量的使用: vs  局部变量

 类中的方法的声明与使用以及return的使用

   

   类中的方法可以调用属性与方法

特殊:递归方法:自己调用自己{递归出口 递归函数}    方法内不可再声明另一个方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值