面向对象(一)
---------------------- QQ:371524846 期待与您交流! ----------------------
一、面向对象和面向过程
   面向对象:
	    面向对象是相对面向过程而言。所以说:面向对象是基于面向过程的。
	  面向对象和面向过程都是一种思想。
      面对过程:
	    强调的是功能行为。
      面向对象:
	    将功能封装进对象。
	  面向对象的三个特征:封装、继承、多态。
	  以后开发:其实就是找对象使用,没有对象,就创建一个对象。
	  找对象,建立对象,使用对象,维护对象的关系。
	  耦合:类与类的关系。
	  内聚:就是自己实现功能的能力。
	  一般开发都要做到,低耦合,高内聚。
	  基本数据类型的传递:
		    形参的改变对实参没有影响。
	  引用数据类型的传递:
		    形参的改变直接影响实参。
二、类和对象的关系:
	  类:将一组对象的公共属性和行为进行抽象,并加以描述的结果。类是对象的抽象化,概括出来的产物。
	  对象:就是这类事物,实实在在存在的个体。
		    对象是类型的具体(个体)化,实例化。
	  描述事物,其实就是在描述事物的属性和行为。
	  属性对应的是类中变量,行为对应的是类中的函数(方法)。
	      注:属性:又叫成员变量、成员属性、对象变量、对象属性、实例变量、实例属性。
		  属性的定义是被类体直接包含的。属性是类的成员之一!
		  eg:
		  class Person {
			    String name;
			    int age;
			    String sex;
		  }
	  其实定义类,就是在描述事物,就是在定义属性和行为,属性和行为共同成为类中的成员(成员变量和成员方法)。
	  注意:只在问题内抽象
	  定义对象的语法: 类名 对象名 = new 类名();   
				    从上面这个语法可以看出类有两个作用:定义对象,定义实体。
三、匿名对象的使用
      eg: 
	    Person p = new Person();
	    p.display();
	    new Person().display();
      匿名对象只能使用一次,所以如果你创建的对象只是想使用一次的话,那么可以使用匿名对象。
      使用匿名对象可能还会用来调用函数。
      eg:
	    fun(new int[]{1,2,3});
	    fun(new Person()); 
    
四、成员变量和局部变量(区别):
	  作用范围:	
		    成员变量作用于整个类中;
		    局部变量作用于函数中,或者语句中。
	  在内存中的位置:
		    成员变量:在堆内存中,因为对象的存在,才在内存中存在。
  		    局部变量:存在栈内存中。
五、封装(Encapsulation):
     1.封装:是指隐藏对象的属性和实现细节,仅对外提供公共访问方式。
             好处:将变化隔离;便于使用;提高重用性;提高安全性。
     2.封装原则:
           将不需要对外提供的内容都隐藏起来。
           把属性都隐藏,提供公共方法对其访问。
     3.Time类说明封装性(hour、minute、second)
	    要求:所有的属性都必须是private、方法是public、类也是public
	    要求:为所有的属性添加getter/setter,即访问器和设置器。
	    如果属性名字叫name,那么它的getter/setter方法名字分别是:getName()、setName()
	    其实getName有返回值,但没有参数;
	    setName()没有返回值,但有参数。
     4.使用private完成封装,使用public提供公有访问接口,即让属性私有,提供公有getter/setter
	  成员访问权限比较:
权限大小
成员修饰符 public protected default(默认) private
同一个类中 OK OK OK OK
同一个包中 OK OK OK NO
子类访问 OK OK NO NO
不同包中 OK NO NO NO
   
六、	构造函数:
     (1) 特点:
	    a.函数名与类名相同;
	    b.不用定义返回值类型;    (定义时的特点)
	    c.不可以写return语句。
	    d.只能使用new来调用。(是调用时的特点)
  	  作用: 给对象进行初始化(通常这么用).
  	   注意: 多个构造函数是以重载的形式存在的。
     (2) 默认构造函数
	    当一个类没有构造函数时,编译器会为这个类添加一个public的,而且
   	    是无参、还无内容的构造器。
    
     匿名调用对象的属性没有意义,调用功能(方法)有意义。
七、this 关键字:
    (1) this 用法一: 看上去,适用于区分局部变量和成员变量同名情况。
	  【this为什么可以解决这个问题?this 到底代表的什么?】
	  this:就代表本类的对象,到底代表哪一个呢?
          this代表它所在函数所属对象的引用。
	      简单说:哪个对象在调用this所在的函数,this就代表哪个对象。
     this 用法二:用于构造函数之间进行互相调用。
(2) 注意:this调用语句,必须是在构造函数中的第一行,而且只能在构造函数中使用。
---------------------- QQ:371524846 期待与您交流! ----------------------
                    
                
                
            
        
浙公网安备 33010602011771号