Java学习历程-2014年4月10日星期四-面向对象

   面向对象是什么?学习中现在很不清晰,尤其是之前只学习过c,考虑到只会用简单的面向过程,所以此次在第一次理解还需要时间积淀。

   个人学习总结:且看日后来看看这些理解是否正确

   首先,面向对象与面向过程是不同的,且优于面向过程的,精简了代码,避免了代码的重复性,而面向对象其所面对的就是对象。什么是对象,我的理解就是对象是某一类型的具体化,比如建立一个学生的类,然后张三石学生,那么这个张三便是要面对的对象。理解对象要和类结合起来理解,类是抽象化的数据类型。对象是由属性和行为构成,成员变量来表示属性,方法来表示行为;成员变量存储在内存的堆中,方法存储在内存的防范区中;


   成员变量和局部变量:

   成员变量-是类中对象的属性描述,具有初始化值,存在类中;

   局部变量-是方法中的变量,没有初始化值,需要赋值;


   内存分为堆、栈、方法区。其中局部变量在栈中,成员变量及对象在堆中,类的信息和方法在方法区中;


   数据类型:基本数据类型-包括byte short int long char boolean float double8中基本数据类型。引用数据类型-包括数组、借口等其他数据类型。


   引用变量存储的是所引用的对象的地址信息,因为引用变量在栈中,对象在堆中。



   我可以建立一个类Emp,是用来定义员工类的,其中属性即成员变量有姓名name 年龄age 性别gender 薪水salary等,行为即方法有sayHi,代码如下:

   public class Emp{

       String name;

       int age;

       String gender;

       double salary;

       

       public void sayHi(){

       };

   }

   调用对象,即在main方法中调用对象,建立新的测试类EmpTest

   public class EmpTest{

       public static void main(String[] args){

           Emp emp = new Emp();//在堆中创建新的对象Emp,并且把地址信息存储在栈中的引用变量emp中    

       }

   }


   构造方法-对对象中的成员变量进行初始化,一般在建立类时不创造构造函数时,程序会自动添加一个默认的构造函数,但若是添加了构造函数,则JVM会取消默认构造函数,之后创建对象时要使用构造函数。构造函数没有返回值,并且函数名也要和类型相同。

   如:

   class Emp{

       String name;

       int age;

       String gender;

       double salary;

       

       Emp(){

       }//默认构造函数,即不定义构造函数时系统默认的,如果定义了构造函数,则系统会取消默认的构造函数,除非在类中创建了该构造函数


       Emp(String name,int age,String gender,double salary){

           this.name = name;

           this.age = age;

           this.gender = gender;

           this.salary = salary;

       }

   }


   this关键词:指代当前对象,即在新建的对象中指代该对象


   数组:

   数组定义:数组是一种数据结构,即程序就是算法加数据结构,好的数据结构可以有好的算法

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

   数据类型[] 数组名称 = {元素1,元素2,...,元素n};

   数据类型[] 数组名称 = new 数据类型[]{元素1,元素2,...,元素n};

   数组长度表示:数组名称.length

   数组的复制:

   

   数组遍历:使用循环语句完成

   int[] arr = {1,2,3,4,5,6,};

   for(int i=0;i<arr.length;i++){

       if(i == arr.length-1){

           System.out.print(arr[i]);

       }esle{

           System.out.print(arr[i]+",");

       }

   }

   

   冒泡排序算法:

   int[] arr = {3,1,5,4,7,9,6};

   for(int i=0;i<arr.length-1;i++){

       for(int j=0;j<arr.length-1-i;j++){

           if(arr[j]>arr[j+1]){

               int temp = arr[i];

               arr[j+1] = arr[i];

               arr[i] = temp;

           }

       }

   }


   选择排序算法:

   int[] arr = {3,1,5,4,7,9,6};

   for(int i=0;i<arr.length-1;i++){

       for(int j=i+1;j<arr.length,j++){

           if(arr[i]>arr[j]){

               int temp = arr[i];

               arr[j] = arr[i];

               arr[j] = temp;

           }

       }

   }

   

   变量a和变量b的值互换方法:int a = 1;int b = 9;

   1、使用中间变量temp

       int temp = a;

       a = b;

       b = temp;

   1、不使用中间变量

       a = a^b;

       b = a^b;

       a = a^b;

或者

       a = a*b;

       b = a/b;

       a = a/b;

或者

       a = a+b;

       b = a-b;

       a = a-b;

你可能感兴趣的:(Java学习,信息)