类与对象的关系 l 使用计算机语言就是不断的在描述现实生活中的事物。 l java中描述事物通过类的形式体现,类是具体事 物的抽象,概念上的定义。 l 对象即是该类事物实实在在存在的个体。 成员变量和局部变量的区别? l 成员变量: • 成员变量定义在类中,在整个类中都可以被访问。 • 成员变量随着对象的建立而建立,存在于对象所在的堆内 存中。 • 成员变量有默认初始化值。 l 局部变量: • 局部变量只定义在局部范围内,如:函数内,语句内等。 • 局部变量存在于栈内存中。 • 作用的范围结束,变量空间会自动释放。 • 局部变量没有默认初始化值。 匿名对象 l 匿名对象是对象的简化形式 l 匿名对象两种使用情况 • 当对对象方法仅进行一次调用的时 • 匿名对象可以作为实际参数进行传递 如Car c =new Car() c.run() new Car().run();
private关键字: • 是一个权限修饰符。 • 用于修饰成员(成员变量和成员函数) • 被私有化的成员只在本类中有效。 l 常用之一: • 将成员变量私有化,对外提供对应的set ,get 方法对其进行访问。提高对数据访问的安全 性。 构造函数 特点: 1. 函数名与类名相同 2. 不用定义返回值类型 3. 不可以写return语句 作用: 给对象进行初始化。 注意: 1. 默认构造函数的特点。 2. 多个构造函数是以重载的形式存在的。 this关键字 特点:this代表其所在函数所属对象的引用。 换言之:this代本类对象的引用。 什么时候使用this关键字呢? 当在函数内需要用到调用该函数的对象时,就用this。 tatic关键字: • 用于修饰成员(成员变量和成员函数) 被修饰后的成员具备以下特点: 随着类的加载而加载 优先于对象存在 被所有对象所共享 可以直接被类名调用 使用注意 l静态方法只能访问静态成员 l静态方法中不可以写this,super关键字 练习: 1 /* 2 要求:定义一个数组工具类,实现相应功能。 3 思路:该类不用实例化,可用static来封装 4 */ 6 public class ArrayTool {//定义工具类 7 private static void swap(int [] arr,int i,int j) {//私有化两数互换方法,封装 8 int temp = arr; 9 arr =arr[j]; 10 arr[j] = temp; 11 } 12 public static int max(int [] arr) {//求最大值 13 int max =arr[0]; 14 for(int i =1;i < arr.length;i++) { 15 if(arr >max) { 16 max =arr; 17 } 18 } 19 return max; 20 } 21 public static void arraySelection(int[] arr) {//选择排序 22 for(int i =0;i<arr.length-1;i++) { 23 for(int j = i+1;j<arr.length;j++) { 24 if(arr[j] <arr) { 25 swap(arr,i,j); 26 } 27 } 28 } 29 } 30 public static void bubbleSelection (int [] arr) {//冒泡排序 31 for(int i =0; i <arr.length-1;i++) { 32 for(int j = 0; j <arr.length-i-1;j++) { 33 if(arr[j]>arr[j+1]) { 34 swap(arr,j,j+1); 35 } 36 } 37 } 38 } 39 public static void arrPrint(int [] arr) {//打印数组 40 System.out.print("["); 41 for(int i =0;i <arr.length-1;i++) { 42 System.out.print(arr+","); 43 } 44 System.out.print(arr[arr.length-1]+"]"); 45 } 46 } //运行检查 1 class ArrayToolTest { 2 public static void main(String[] args) { 3 int arr[] = {1,3,2,6,5,78,99,67,77}; 4 int max = ArrayTool.max(arr); 5 System.out.print(max); 6 ArrayTool.arraySelection(arr); 7 ArrayTool.arrPrint(arr); 8 ArrayTool.bubbleSelection(arr); 9 ArrayTool.arrPrint(arr); 11 } 12 }
|