Java学习笔记<3>面向对象相关

面向对象的基本思想

从现实世界客观存在的事务出发来构造软件系统,并在系统的构造中尽可能运用人类的自然思维方式,如抽象、分类

继承、聚合、多态等。

类和对象的关系

对象中存储了类规定的数据类型,并且对象可以调用类的方法。

java面向对象

<1>对象是java程序的核心,一切皆对象。

<2>对象可以看成静态属性(成员变量)和动态属性(方法)的封装体。

<3>类是创新同一类型对象的模版,定义了该类型对象应具有的成员变量及方法。

类的定义

成员变量可以用java语言的任何一种数据类型(包括基本数据类型和引用数据类型)

成员变量的作用域为整个类体。

在定义成员变量时可以对其初始化,如上面的int age = 20; 如果不初始化,java会用默认的值初始化。

默认初始化表:

引用

String s ;   // 声明了一个String类型的引用,但并没有让它指向某个对象。

s = new String("hello world"); //使用new语句创建了一个String类型的对象,并用s指向它。

对象的创建和使用

<1>必须使用new关键字创建对象

<2>使用对象(引用) . 成员变量来引用对象的成员变量

<3>使用对象(引用) . 方法+参数列表来调用对象的方法

<4>同一类的每个对象有不同的成员变量存储空间

<5>同一类的每个对象共享该类的方法(在代码段)

构造方法

<1>使用new+构造方法创建一个新的对象

<2>构造函数是定义在类中一个用来初始化对象的函数

<3>构造函数和类名相同且没有返回值

<4>创建对象时,使用构造函数初始化对象的成员变量

<5>当没有构造函数时,编译器会自动添加形如 类名(){...}的构造函数

重载

方法名相同而参数不同。调用时根据相应的参数选择对应的方法。

this关键字

<1>在类的方法定义中使用this关键字代表使用该方法的对象的引用

<2>当必须指出使用该方法的对象是谁时要使用this指针

<3>有时使用this指针可以处理方法中参数与成员变量重名的现象

<4>this可以看作一个变量,值是当前对象的引用

static关键字

<1>在类中,用static声明的成员变量为静态成员变量,它为类的公共变量,第一次使用时被初始化。

<2>对于该类的所有对象,static变量只有一份

<3>用static声明的方法为静态方法,在调用该方法时,不会将对象的引用传递给它,所以在static方法中

不能访问非static的成员。

<4>可以通过对象引用或类名访问静态成员。

package和import

为便于管理大型软件系统中数目众多的类,解决命名冲突问题,java引入包(package)机制

<1>package语句为java源文件的第一条语句,指定该文件中定义的类所在的包

<2>java编译器把包对应于文件系统的目录管理,package里面的 . 指明包的层次。如:

package com.sxt //该文件位于 .\com\sxt目录下

<3>如果将一个类打包,使用该类时,必须使用该类的全名。例如:com.sxt.Myclass

也可以使用import在文件开头引入要使用的类,如: import com.sxt.Myclass;

小结:

主要的包介绍:

继承

<1>java中使用extends关键字实现类的继承机制

<2>通过继承,子类拥有基类的所有成员

<3>java只支持单继承

访问控制

方法的重写

<1>在子类中可以对继承来的方法进行重写

<2>重写方法和被重写方法具有相同的返回类型、方法名和参数表

<3>重写方法不能使用比被重写方法更严格的访问权限

super关键字

在java中使用super关键字来引用基类的成分,如:

继承中的构造方法

<1>子类的构造中,必须调用基类的构造方法

<2>子类可以在自己的构造函数中使用super(...)调用基类的构造方法。

<3>可以使用this(...)调用本类另外的构造方法。

<4>如果调用super,必须写在子类构造函数的第一行

<5>如果子类没有显示的调用基类的构造方法,系统则自动调用基类的无参构造函数

<6>在5中,若基类没有无参构造函数则编译出错

object类

<1>object类是java所有类的根基

<2>若类的声明中未使用extends指明其基类,则默认基类为object类

toString方法

<1>在进行String与其他类型数据进行连接时,如System.out.println(name);时,将自动调用toString方法

<2>可以根据需要在用户的自定义类型中重写toString方法

equals方法

<1>提供对象是否相等的逻辑方法

<2>可以根据需要在用户的自定义类型中重写equals方法

对象转型

<1>一个基类的引用可以指向其子类的对象

<2>一个基类的引用不能调用子类新增加的成员变量或方法

<3>可以通过 instanceof 类名来判断该引用类型变量所指向的对象是否属于该类或该类的子类

动态绑定和多态

动态绑定是指在运行期间而非编译期,判断所引用的实际类型,根据其实际类型调用其相应的方法。

条件:

<1>要有继承

<2>要有重写

<3>基类引用指向子类对象

抽象类

<1>用abstract关键字修饰一个类时,这个类叫做抽象类。修饰一个方法时,称为抽象方法。

<2>含有抽象方法的类,必须声明为抽象类。

<3>抽象类必须被继承,抽象方法必须被重写。

<4>抽象类不用实例化。

<5>抽象方法只需声明,不需要实现。

final关键字

<1>final的变量的值不能被改变

<2>final的方法不能被重写

<3>final的类不能被继承

接口

<1>接口:抽象方法和常量值定义的集合

<2>从本质上来讲,接口是一种特殊的抽象类,这种抽象类只包括常量和方法的定义,而没有变量和方法的实现

举例:

接口特性

<1>多个无关的类可以实现同一接口

<2>一个类可以实现多个无关的接口

<3>与继承相似,接口与实现类之间存在多态性

<4>接口中的成员变量默认是 public static final类型,也只能是这个类型

<5>接口只能定义抽象的方法,这些方法默认是public的,也只能是public类型的

<6>接口可以继承其他的接口,并添加新的属性和方法

Java学习笔记<3>面向对象相关

时间: 2024-08-01 09:28:44

Java学习笔记<3>面向对象相关的相关文章

java学习笔记之面向对象static,final关键字

java学习笔记之面向对象static,final关键字 一.static关键字 1.概述: static静态的,被static修饰的成员属于类,不属于单个对象,被所有对象所共享,存在静态区中,静态的成员优先于对象加载到内存中. 2.statc修饰成员的使用方式:(被static修饰的成员变量有默认值) /* 1.可以通过对象直接使用,不推荐使用 2.通过类名调用静态成员 类名.静态成员变量 类名.静态成员方法 */ 3.static的特点 /* 1.在同一个类中,静态成员只能访问静态成员,非静

【原】Java学习笔记019 - 面向对象

1 package cn.temptation; 2 3 public class Sample01 { 4 public static void main(String[] args) { 5 // 仔细想一想,Animal应该是一个抽象的概念,相对于Animal来说,狗才是具体的概念 6 // Animal的行为也应该算是一个抽象的行为 7 8 // Java中对于这些抽象的概念或是抽象的行为,提供了一个关键字 abstract 来进行修饰 9 10 // 关键字 abstract用在类上,

【JAVA学习笔记】面向对象

编程语言的发展 面向过程的设计思想 面向对象的设计思想 对象和类的概念 类之间的关系 对象和引用 Java类的定义 构造函数 对象的创建和使用 this关键字 static关键字 package和import语句 访问控制 类的继承 方法的重写 final关键字 object类 对象转型 多态 抽象类 接口 编程语言的发展 机器语言 汇编语言 高级语言–面向过程的语言 面向对象的语言 面向过程的思想和面向对象的设计思想 面向对象思维: 合适的方法出现在合适类中 在问题域中,不再考虑一步一步的过程

疯狂java学习笔记之面向对象-定义类、方法、构造器

Java面向对象 1.定义类 2.创建对象.调用方法 类和对象: 某一类对象的概念定义. 比如:人类 - 抽象出来的概念(不特指某个人) 对象 - 在类的概念下产生的一个实例,它就是一个对象了. java程序中,类是最小的程序单位 - 所有的java程序都必须从定义类开始 定义类的语法格式: [修饰符]  class  类名{ //0 ~ N 个 Field 定义 //0 ~ N 个 方法定义 //0 ~ N个 构造器定义 } 一个类中最多只能出现五种成分:Field.方法.构造器 一个类最常见

【原】Java学习笔记014 - 面向对象

1 package cn.temptation; 2 3 public class Sample01 { 4 public static void main(String[] args) { 5 // 面向对象思想 6 7 // 回顾编程语言思想进化之路:从面向过程到面向对象 8 9 // 面向过程 10 // 举例: 11 // 1.冰箱门打开 12 // 2.大象放进去 13 // 3.冰箱门关上 14 // [面向过程的思路的着眼点在于动作的功能,思考打开.放入.关闭均为动作] 15 16

java 学习笔记2 面向对象(上)

类和对象 类是某一批对象的抽象,可以把类理解成某种概念.对象是一个具体存在的实体.类和对象是面向对象的核心. 类定义的是多个实例的特征,类不是具体存在,实例才是具体存在. 定义类(class)的语法: [修饰符] class 类名 { 零个到多个构造器定义.... 零个到多个成员变量.... 零个到多个方法....} 要点:1.三种常见的成员:构造器(new关键字调用) 成员变量 方法 2.类名由一个或多个有意义的词连接而成,每个单词首字母大写,其余小写. 3.修饰符可以是public fina

【原】Java学习笔记017 - 面向对象

1 package cn.temptation; 2 3 public class Sample01 { 4 public static void main(String[] args) { 5 // 继承关系中的private访问权限:子类只能访问父类中的非私有的成员 6 } 7 } 8 9 //// 父类 10 //class Father { 11 // // 成员变量 12 // // 子类从父类继承时,父类的private的成员变量(私有的成员变量)对于子类来说是无法访问的 13 //

java学习笔记之面向对象接口

面向对象接口总结 接口理解: 接口是功能的集合,接口的定义也使用.java文件,编译之后也产生.class文件.类的定义使用class  ,而接口的定义使用interface: 定义格式: 1 public interface 接口名{ 2 //常量定义格式:public static final 常量名(一般是大写) 3 成员变量->常量 4 //抽象方法定义:public abstract 返回值类型 方法名(参数列表) 接口中的方法全部是抽象方法 5 成员方法->抽象方法 6 } 7 /

java学习笔记之面向对象多态

面向对象三大特性之多态 一.多态的概念 多态是继封装,继承之后,面向对象的三大特性. 现实事物经常会体现出多种形态,如学生,学生是人的一种,则一个具体的张三同学既是学生也是人,即出现两种形态. java作为面向对象的语言,同样可以描述一个事物的多种形态,java中多态的代码体现在一个子类对象(实现类对象)既可以给这个子类(实现类对象)引用变量赋值,又可以给这个子类(实现类对象)的父类(接口) 变量赋值. 父类的引用变量指向子类对象.多态的前提需要有继承关系或者是实现关系,否则没法完成多态.在使用