Java面向对象(一)

来源:互联网 发布:mmd怎么删除动作数据 编辑:程序博客网 时间:2024/05/21 14:06


·将功能封装进对象,强调具备了功能的对象

·java里面有对象用对象,没有对象,那么就创造对象,用对象,之后还要维护各种对象之间的关系


注意

1.面向对象强调 :具备了功能的对象,将功能封装进对象 2.OOP :object-oriented programming面向对象编程

3.面向对象的三大特征:封装、继承、多态

4.类(class)是抽象的,概念性的。对象(Object)是实实在在存在的,“看得见”,“摸得着”

5.对象也叫类的实例(instance)

6.面向对象编程的关键是类的设计

7.类的设计就是,设计类中包含的内容(类的成员)

8.对象的类型是类

9.先设计类,在通过类来创建出一个个的对象

10.通过类来创建对象,也可以说成使用类来实例化一个对象

11.对象跟类的实例化是一个意思

12.类不占内存,对象才占内存


类的成员

 1.属性(成员变量、全局变量、Field)

 2.方法(成员方法、成员函数、Method)

 3.构造器 

 创建类的格式

 [修饰符] class类名

  {

     属性

       方法

    }

  

  类的修饰符:public abstractfinal 缺省

  修饰符public:类可以被任意访问

  类的正文要用{ }括起来

 

属性

     格式:

    [<修饰符>] 类型<属性名> [=初值] ;

     注意:类型可以是任何基本类型,如int、boolean或任何类。也可以是引用数据类型

     [<修饰符>]: 

     修饰符public: 该属性可以被本类以外的方法访问。

     修饰符private: 该属性只能由本类的方法访问。

     修饰符protected:

     缺省

  

  成员变量vs局部变量

     相同点:

     1.类型 名=初始值;

     2.都有作用范围 {}

     不同点:

     1.定义的位置来说:

              成员变量:类的内部,方法的外部

              局部变量:方法的内部,形参,代码块

     2.权限修饰符:

            成员变量: public protectied 缺省 private

            局部变量:无修饰符,跟所在的方法的修饰符一致

     3.都有初始值:

            成员变量:可以不显示的指定初始值,系统会分配默认的初始值

                 byte\short\int\long\→  0

                 char→  空

                 floatdouble  → 0.0

                 boolean  →   false

                 引用类型  →  null

            局部变量:必须显示的指定初始值,系统不会分配默认的初始值

    4.内存中的位置:

            成员变量存储在堆中!

            局部变量存储在栈中!

 总结:变量的分类

         按类型分:基本数据类型和引用数据类型

         按位置分:局部变量和成员变量


public String name;private String sex;protected int age;//方法public void eat(){ int i=9;//局部变量System.out.println("eating");}public void walk(){System.out.println("walking");}}

创建对象

使用关键字 new +构造器

      Personp1 =new Person();

      System.out.println(p1);

     使用对象名.属性 

      对象.方法的方式来调用属性跟方法

p1.walk();p1.eat();p1.age=30;p1.name="韩超";p1.sex="男";System.out.println(p1.age);System.out.println(p1.sex);System.out.println(p1.name);

匿名对象

1.我们也可以不定义对象的句柄,而直接调用这个对象的方法。这样的对象叫做匿名对象,如:new Person().shout();

 2.如果对一个对象只需要进行一次方法调用,那么就可以使用匿名对象。

3.我们有时会将匿名对象作为实参传递给一个函数调用。


//1new1世界new Person().eat();new Person().walk();Person p2 =new Person();testNiMing(p2);

//将匿名对象作为实参传递给一个函数调用。public static void testNiMing(Person person){person.eat();}

 面向对象的三大特性: 封装、继承、多态



0 0
原创粉丝点击