Java面向对象(一)


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

·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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值