黑马程序员——JAVA基础_01(类和对象的关系、成员变量和局部变量、构造函数、构造代码块)

时间:2023-02-11 18:36:14

------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------

类和对象的关系

 类:就是对现实事物中的描述,提取某一对象的共性内容,对其进行抽象,让复杂的事物简单化。描述事物其实就是在描述事物的属性和行为。 属性对应的是类中的变量。行为对应的是类中的函数(方法),属性和行为共同称为类的中成员(成员变量、成员方法)
  对象:就是这类事物,实实在在存在的个体。

 例子:比如简单描述汽车类,汽车的属性(颜色、轮胎数)汽车的行为(行驶)

        //汽车类

classCar

{

        //颜色

        String color = “红色”;

        //轮胎数

        int num = 4;

        

        //行为(行驶)

        void run()

{

        System.out.println(color+”….”+num);

}

}

        //生产汽车(对象)

    class CarDemo

{

        public static void main(String[] args)

{

        //在堆内存中产生一个实体,通过new操作来完成

        Car c = new Car();

        //生产出一辆红色4轮的汽车

        c.run();

}

}

成员变量和局部变量
   成员变量:成员变量作用于整个类中,在堆内存中,因为对象的存在,才在内存中存在。
   局部变量:局部变量作用于函数中,或语句中。存在于栈内存中。
权限修饰符
 修饰符:用于修饰类中的成员(成员变量、成员函数)
   private:私有,私有只在本类中有效。私有化以后,类以外即使建立了对象也不能直接访问。把属性都隐藏, 提供公共方法对其访问。
    public:公有,外部和本类中都有效。

构造函数
    特点:函数名与类名相同,不用定义返回值类型,不可写return语句。
  作用:给对象进行初始化。
  注意:多个构造函数是以重载的形式存在的。
构造代码块
  作用:给对象进行初始化。对象一建立就运行,优先于构造函数执行,构造代码块中定 义的是不同对象共性的初始化内容。
构造函数与构造代码块的区别
  区别:构造代码块是给所有对象进行统一初始化的。  而构造函数是给对应的对象初始化的。
this和this()
    this:代表所在函数所属对象的引用,也就是说,哪个对象在调用this所在函数,this就代表哪个对象。
    this():用于构造函数之间互相调用,只能定义在构造函数的第一行,因为初始化要先执行。

例如:

class Person

{

                  private String name;

                  private int aeg;

                  

                  Person()

                  {         

                  }

                  

                  Person(String name)

                  {

                           this.name = name;

                  }

                  

                  Person(String name,int age)

                  {

                           this(name); //构造函数间互相调用方式

                           this.age = age;

                  }

}

 

class This2

{

                  public static void main(String[] args)

                  {

                                    Person     p1    =      new Person("张三",25);

                  }

}