JavaSE基础笔记四

第三章 面向对象(一)

1.(了解)面向对象和面向过程


2.面向对象的编程关注于类的设计

1)一个项目或者工程,不管多么庞大,一定是由一个一个的类构成

2)类是抽象的,好比是制造汽车的图纸,车是由图纸制造的,其实就是类的实例化


3完成一个项目(功能)的思路

1)所需要完成的功能对应的类的对象是否存在

2)若存在,则通过对象直接调用对应的类中的属性或者方法即可

3)若不存在,则要创建类的对象,甚至说类都不存在,就需要设计类


4.面向对象编程的三条主线:

1)类及类的构成成分:属性 方法 构造器 代码块 内部类

2)面向对象编程的特征:封装性 继承性 多态性(抽象性)

3)其他的关键字:this super package import static final abstract interface

类及对象

1.关注于类的设计 


2.类的组成成分:

1)属性(成员变量 Field)

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


2.1属性:

成员变量 vs 局部变量

相同点:1.遵循变量生命的格式:数据类型 变量名 = 初始化值

            2.都有作用域

不同点:1.声明的位置不同:成员变量:声明在类里,方法外

      局部变量:声明在方法内,方法的形参部分,代码块内

   2.成员变量的修饰符有四个:public private protected 缺省

      局部变量没有修饰符,与所在的方法修饰符相同

   3.初始化值:一定会有初始化值。

   成员变量:如果在声明的时候,不显式的赋值,那么不同数据类型会有不同的默认初始化值

   byte short int lang====>0

   float double====>0.0

   char====>空格

            boolean====>false

            引用类型变量====>null

            局部变量:一定要显式的赋值(无默认初始化值)

            4.在内中存放的位置不同:成员:堆空间 局部:栈空间

总结:关于变量的分类:1按照数据类型不同:基本数据类型(8种)&引用数据类型

                                 2.按照声明的位置不同:成员变量&局部变量


2.2方法:提供某种功能的实现

  1)格式:权限修饰符 返回值类型(void:无返回值/具体返回值)方法名(形参){}

方法成员的基本声明与定义方式:

存取修饰 返回值类型 方法名(参数行){

//实例

return 返回值;

}

  2)关于返回值类型:void:表明此方法不需要返回值

                              有返回值的方法:在方法的最后一定有return+返回值类型对应的变量

       特点:void和return不能出现在同一个方法内

  3)方法内可以调用本类中其他方法或属性,但不能在方法中再定义方法


3.面向对象编程思想的落地法则一:

1)设计并创建类及类的成分

2)实例化类的对象

3)通过“对象.属性”或“对象.方法”的形式完成某项功能


4.类的初始化的内存解析

4.1内存划分的结构:

    栈(stack):局部变量、对象的引用名、数组的引用名

    堆(heap):new出来的“东西”(如:对象、数组的实体),含成员变量

    方法区:包含字符串常量

    静态域:声明为static的变量

4.2 理解的基础上,学会基本的创建的类的对象在内存中的运行

方法的重载

方法的重载(overload):

要求:1.在同一个类中 2.方法名必须相同 3.方法的参数列表不同(①参数的个数不同②参数类型不同)

补充:方法的重载与方法的返回值类型没有关系


注意方法有无返回值


可变个数的形参的方法

1.格式:对于方法的形参:数据类型...形参名

2.可变个数的形参的方法与同名的方法之间构成重载

3.可变个数的形参在调用时,个数从0开始,到无穷多个都可以

4.使用可变多个形参的方法与方法的形参使用数组是一致的

5.若方法中存在可变个数的形参,那么一定要声明在方法形参的最后

6.在一个方法中,最多声明一个可变个数的形参


java的值传递机制

方法的参数传递

1.形参:方法声明时,方法小括号内的参数

  实参:调用方法时,实际传入的参数的值


2.规则:java中的参数传递机制:值传递机制

1)形参是基本数据类型的:将实参的值传递给形参的基本数据类型的变量

2)形参是引用数据类型的:将实参的应用类型变量的值(对应的堆空间的对象实体的首地址值)传递给形参的引用数据类型的变量


面向对象的特征一:封装性

1.面向对象的特征一:封装与隐藏

问题:当创建的类的对象以后,如果直接通过“对象.属性”的方式对相应的对象属性赋值的话,可能会出现不满足实际情况的意外,我们考虑不让对象来直接作用属性,

         而是通过“对象.方法”的形式,来控制对象对属性的访问,实际情况中,对属性的要求就可以通过方法来体现

2面向对象思想的落地法则二:(封装性思想)①将类的属性私有化 ②提供公共的方法(setter&getter)来实现调用


3.权限修饰符:public private 缺省 protected

  可用来修饰属性、方法、构造器

注:1)权限从大到小排列:public protected 缺省 private

        2)修饰类的权限修饰符有:public  缺省


构造器

一.

类的第三个成员:构造器(constructor 构造方法)

                   作用:①创建对象   ②给创建的对象的属性赋值


1.设计类时,若不显式声明类的构造器的话,程序会默认提供一个空参的构造器

2.一旦显式的定义类的构造器,那么默认的构造器就不再提供

3.如何声明类的构造器:格式:权限修饰符 类名(形参){  }

4.类的多个构造器之间构成重载


构造器无返回值

二.

类对象的属性赋值的先后顺序:

①属性的默认初始化②属性的显式初始化③通过构造器给属性初始化④通过“对象.方法”的方式给属性赋值⑤通过代码块赋值


this关键字

this:

1.使用在类中,可用来修饰属性、方法、构造器

2.表示当前对象或者当前正在创建的对象

3.当形参与成员变量重名时,如果在方法内部需要使用成员变量,必须添加this来表明该变量是类成员

4.在任意方法内,如果使用当前类的成员变量或成员方法可以在其面前添加this,增强程序的阅读性

5.在任意构造器中使用“this(形参列表)”显式的调用本类中重载的其他的构造器

  5.1要求“this(形参列表)”要声明在构造器的首行

  5.2类中若存在n个构造器,那么最多有n-1个构造器中使用了this


package import

package:

1.声明源文件所在的包,写在程序的第一行

2.每“.”一次,表明一层文件目录

3.包名都要小写


import:

1.显式导入指定包下的类或接口

2.写在包的声明和源文件之间

3.如果需要引入多个类或接口,那么久并列写出

4.如果导入的类是java.lang包下的,就不需要显式的声明

5.理解“.*”的概念。比如java.util.*;

6.如何处理同名类的导入。

7.import static 表示导入指定类的static的属性或者方法

8.导入java.lang.*只能导入lang包下的所有类或接口,不能导入lang的子包下的类或接口



本文出自 “阿成的博客” 博客,转载请与作者联系!

你可能感兴趣的:(abstract,package,interface)