学习笔记4

Switch 的表达式可以为byte,short,int,char,JDK7之后的版本可以为string。

带标签的语句:可以直接跳出多层循环。

       如:

              loop1 : for( int i=0;i<100;i++){

                loop2 : for (int j=0;j<i;j++){

                                   if (条件){

       break loop1; // or break loop2;

}

}

                       }

Static关键字的特点:(可以修饰成员变量,也可以修饰成员方法)

1.       随着类的加载而加载

2.       优先于对象存在

3.       被类的所有对象共享

4.       可以通过类名调用,也可以通过对象名调用(一般用类名调用)

5.       静态方法只能访问静态成员变量和静态成员方法。

静态变量和成员变量的区别:

1.       所属不同

静态变量属于类,所以也称为类变量

员变量属于对象,所以也称为实例变量(对象变量)

2.       内存中的位置不同

静态变量存储于方法区的静态区

成员变量存储于堆内存

3.       内存出现时间不同

静态变量随着类加载而加载,随着类消失而消失

成员变量随着对象创建而创建,随着对象消失而消失

4.       调用不同

静态变量可以通过类直接调用,也可以通过对象调用

成员变量只能通过对象调用。

将一个类的构造方法私有(private),其余成员和方法全部设为static,则类中的成员变量和成员方法将不能够通过创建对象来访问,只能通过类名去访问成员和方法。

Java.lang包不需要import,其他的包都需要import

代码块:

静态代码块(只执行一次),构造代码块(每次调用构造方法都执行),构造方法。

继承的优点:

       提高了代码的复用性

       提高了代码的维护性

       让类与类产生了关系,是多态的前提。

       缺点:高耦合性。

thissuper的区别:

       this代表本类对应的引用

       super代表父类存储空间标识(父类的引用,可以操作父类的成员)

       使用:

1.       调用成员变量

a)         this.成员变量

b)        super.成员变量

2.       调用构造方法

a)         this(…)

b)        super(…)

3.       调用成员方法

a)         this.成员方法

 

b)        super.成员方法

方法重写(override,子类继承父类方法并进行重写)

       方法重载(overload,同一个类中,方法名相同参数不同的方法)

       Final可修饰类、变量、方法

              修饰变量时,可修饰基本类型和引用类型。

                     修饰基本类型:变量值不能改变。

                     修饰引用类型:地址值不能改变。

       多态:

              父类的引用指向子类对象。

              Father f = new Son();

              子类继承父类的方法,所以f调用父类方法时,实际调用的是子类重写的父类方法。

              多态的缺点:

                     不能调用子类中特有的方法。(解决方法:对象向下转型)

Father f = new Son(); (向上转型)(f调用成员变量时调用的是父类成员,调用

成员方法时调用的是子类的方法(只能是重写的父类的方法,特有的额方法不行)。)

Son s = (Son) f;(向下转型)(s调用成员变量时,调用的是子类成员,可以调用子类的所有方法(包括重写的父类的方法和子类特有的方法。))

              多态中的成员访问特点:

1.       成员变量

编译看左边,运行看左边

2.       构造方法

创建子类对象时,访问的是父类的构造方法,对父类的数据进行初始化。

3.       成员方法

编译看左边(只能调用子类重写的父类方法),运行看右边(调用子类方法)。

       抽象类有构造方法,但是不能实例化。该构造方法的作用是用于子类访问父类数据的初始化。

       抽象类可以通过多态实例化子类(父类引用指向子类对象)(对象转型)。

       抽象类的成员特点:

1.       成员变量:可以是变量,也可以是常量

2.       构造方法:有,也可带参

3.       成员方法:可以是抽象方法,也可以是非抽象方法

多态的分类:

1.       具体类多态

2.       抽象类多态(常用)

3.       接口多态(最常用)

接口的特点:

1.       成员变量:接口中的变量默认是staticfinal

2.       构造方法:无,没有构造方法。

3.       成员方法:只能是抽象方法。(默认为publicabstract

类与类的关系:继承关系,只能是单继承,可以多层继承。

类与接口:实现关系,可以同时实现多个接口。

接口与接口:继承关系,可以单继承,也可以多继承。

抽象类与接口的区别:

1.       成员区别

a)         抽象类:

                                                    i.              成员变量:

                                                  ii.              构造方法:

                                                iii.              成员方法:

b)        接口:

                                                    i.              成员变量:

                                                  ii.              成员方法:

2.       关系区别

a)         类与类

b)        类与接口

c)         接口与接口

3.       设计理念区别

a)         抽象类

 

b)        接口

参数传递时,Java 中只有值传递,但分两种情况,如果是基本类型(如intdouble等基本数据类型),传递的是数据值,如果是引用类型(如类,接口,数组),传递的是地址值。

       基本类型:形式参数的改变不影响实际参数。(因为传递的只是数据值。)

引用类型:形式参数的改变直接影响实际参数。(因为传递的是地址,所以所指向的内容会随时改变。)

UML语言

面向对象思想

类与对象及其使用

对象的内存图

成员变量和局部变量的区别

匿名对象

封装

this关键字

构造方法

static关键字

面向过程的思想:

       需求分析(要做什么)----概要设计(要怎么做)----详细设计(代码实现,具体实现时要一步一步去实现,具体的每一步都要我们去实现和操作,这些步骤按照一定的顺序协调操作,完成需求。)

当需求较单一,需求变更较少时,并无明显缺点。

缺点:当需求较复杂,维护较频繁,功能较多,需求变化较多时,维护起来会很难。

面向对象:

面向对象的开发:就是不断的创建对象、使用对象、指挥对象做事情。

       面向对象的设计:就是管理和维护对象之间的关系。

       面向对象的特征:封装(encapsulation)、继承(inheritance)、多态(polymorphism)。

封装:隐藏对象的属性和实现细节,仅对外提供公共访问方式。

Private修饰成员变量,外部不能访问,只能通过成员方法访问

对象是类的具体实现,是一个类的具体实例。

Java中内存分为3个区:栈、堆、方法区(类描述区,静态区)。

成员变量和局部变量的区别:

       在类中位置不同:

              成员变量:在类中方法外。

              局部变量:方法内或者方法声明上

       在内存中的位置不同:

              成员变量:在堆内存

              局部变量:在栈内存

       生命周期不同:

              成员变量:随着对象的创建而存在,随着对象的消失而消失

              局部变量:随着方法的调用而存在,随着方法的调用完毕而消失

       初始化值不同:

              成员变量:有默认初始化值

              局部变量:没有默认初始化值,必须定义、赋值,然后才能使用。

       注意事项:局部变量名字可以和成员变量名字一样,在方法中使用的时候采用的是就近原则。

匿名对象(new classname()):

       调用方法,只适用于只调用一次的时候,不适合于多次调用。匿名对象调用完毕即消失(可被回收)。

posted on 2016-02-22 22:12  Yanspecial  阅读(138)  评论(0编辑  收藏  举报