黑马程序员技术交流社区

标题: java学习笔记-1114-对象 [打印本页]

作者: nuddlesW    时间: 2014-11-15 11:21
标题: java学习笔记-1114-对象

类与对象的关系

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静态方法中不可以写thissuper关键字

练习:

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 }









欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2