黑马程序员_Java基础05天日志

来源:互联网 发布:侠客风云传 招式数据 编辑:程序博客网 时间:2024/05/23 19:17

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------


1.   面向对象

1.1概述:将功能封装进对象,强调具备了功能的对象。面向对象是相对面向过程而言, 和面向过程都是一种思想. 面向对象是基于面向过程的。

2.类,对象,类和对象的关系

      2.1 类就是对现实生活中事物的描述。例学员。对象就是这类事物,实实在在存在的个体。例 学员张三。类就是提取对象中的共性内容,对具体对象的抽象。定义类其实就是在定义类中的成员(成员变量和成员函数)

      2.2 类的实例就是对象。具体步骤,实例化Car类通过new操作符来实现。Car car=new Car();  car可以取任意名。只是给这个新的Car对象起个名字而已。car是个类类型变量,它指向对象。

      2.3调用对象里面的属性,用对象名.属性来实现。调用对象里面的方法,用对象名. 方法来实现。

 

2.   成员变量和局部变量

         2.1:成员变量

• 成员变量定义在类中,在整个类中都可以被访问。

     • 成员变量随着对象的建立而建立,存在于对象所在的堆内

       存中。

     • 成员变量有默认初始化值。

       2.2:局部变量:

• 局部变量只定义在局部范围内,如:函数内,语句内等。

     • 局部变量存在于栈内存中。

     • 作用的范围结束,变量空间会自动释放。

     • 局部变量没有默认初始化值。

class demo

{

       publicint number;

       publicvoid max()

{

       publicint max;

}

}

上面代码中的number即是成员变量,max方法中的max变量即是局部变量。


3.   匿名对象

3.1 概念:即是没有名字的对象。匿名对象是对象的简化形式。

3.2格式:new Car(); 

3.3 使用情况:1.当对对象方法仅进行一次调用的时    例:new Car().show();  2. 匿名对象可以作为实际参数进行传递    例:public static void show(Car c){}    show(new Car());


4.封装

      4.1概述:是指隐藏对象的属性和实现细节,仅对外提供公共访问方式。

      4.2 好处:1.将变化隔离

               2.便于使用  使用者不用取了解内部构造就可以使用,是使用更加简单。

               3.提高重用性 封装好后,日后可以重复使用。

                4.提高安全性

      4.3 封装原则:1.将不需要对外提供的内容都隐藏起来。

                  2.把属性都隐藏,提供公共方法对其访问。 


5.封装private

      5.1 概述:private ,私有,权限修饰符。用于修饰类中的成员(成员变量,成员函数)。私有只有在本类中有效。

      5.2 注:私有仅仅是封装的一种表现形式。

      5.3 将属性私有化以后,类以外即使建立对象也不能够访问。


6.构造函数

     

classPerson{    privateString name;    private int age;       Person()    {       System.out.println("A:name="+name+",,age="+age);          }}


6.1作用:给对象进行初始化。对象一建立就会调用与之对应的构造函数。


 6.2 特点:

1. 函数名与类名相同

2.  不用定义返回值类型

3.  不可以写return语句


 6.3 注意:

1. 默认构造函数的特点。 若没有自定义构造函数,系统会默认定义一个没有参数的空构造函数。若有自定义构造函数,则不会默认定义。

2.  多个构造函数是以重载的形式存在的。同函数名,不同返回类型,不同参数类型。


6.4 一般函数和构造函数的区别

  在运行上不同:构造函数是在对象一建立就运行,给对象初始化。而一般函数(方法)是对象调用才执行,给对象添加对象具备的功能。一个对象建立,构造函数只运行一次。而一般方法可以被该对象调用多次。


6.5 什么时候定义构造函数?

      当分析事物时,该事物存在具备一些特性或者行为,那么将这些内容定义在构造函数中。

 

7.构造代码块


7.1作用:给对象进行初始化。对象一建立就运行,而且优先于构造函数执行。


7.2 与构造函数的区别:构造代码块是给所有对象进行统一初始化。而构造函数是给对应的对象初始化。构造代码中定义的是不同对象共性的初始化内容。


7.3 格式 :

{

       System.out.println("personcode run");

       cry();

   }

在调用构造函数的时候,会先调用这构造代码块。

 

8.this 关键字


8.1 代表它所在函数所属对象的引用。简单来说,哪个对象在调用this所在的函数,this就代表哪个对象。

      例:

classPerson{    privateString name;    private int age;    Person(int age)    {       this.age= age;    }}         Person p1 = newPerson(20);


这时候,this 代表p1对象。


      8.2 什么时候使用this关键字

      当在函数内需要用到调用该函数的对象时,就用this。局部变量与成员变量同名时,就加this用于区分。


      8.3 this的应用:当定义类中功能时,该函数内部要用到调用该函数的对象时,这时用this来表示这个对象。但凡本类功能内部使用到了本类对象,都用this表示。

例:

class Person{privateint age;public Booleancompare(Person p){   return this.age=p.age;}}


8.4 this在构造函数间的调用  

this();代表无参空的构造函数。

classPerson{    privateString name;    private int age;       {       System.out.println("coderun");    }       Person()    {       System.out.println("personrun");    }    Person(String name)    {       this();       this.name=name;    }    Person(String name,int age)    {       this(name);         this.age= age;      }}


8.5注:This语句只能定义在构造函数的第一行。因为初始化要先执行。

     

 


------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------

0 0