java——面对对象

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java——面对对象相关的知识,希望对你有一定的参考价值。

软件出现的目的:
*用计算机的语言来描述世界
*用计算机解决现实世界的问题

面向对象的思想 描述 面向对象的世界

面向对象设计和开发程序的好处:
*交流更加流畅
*提高设计和开发效率

构造方法:
构造方法是用来描述对象创建的过程,构造方法在对象创建的过程中被调用

语法:
访问修饰符 构造方法名(){
//初始化代码
}
注意:构造方法名必须和类名相同;没有返回值;


方法重载:
*方法名相同
*参数项不同
*与返回值和访问修饰符无关


this关键字用法:

调用属性:
this.属性名=100;

调用方法:
this.方法名();

调用构造方法:
this();
this(参数);
如何使用:必须是构造方法中的一条语句

 

面向对象的三大特征之一—封装

封装的概念:
封装:将类的某些信息隐藏在类内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息
的操作和访问;

封装的好处:
*隐藏类的实现细节
*只能通过规定方法访问数据
*方便加入控制语句
*方便修改实现

封装的步骤:
1.修改属性的可见性
2.创建getter和setter方法
3.在getter\setter方法中加入属性控制语句

 

static修饰符:
static的资源属于类级别的资源,静态资源,对于类的所有实例对象共享
static关键字可以用来修饰属性,方法,代码块和内部类
static修饰符的资源,在类加载期间执行

1、static修饰的属性:
static关键字修饰的属性,属于对类所有实例对象共享的变量
访问静态的属性:类名.属性名

2、static修饰方法:
static关键字修饰的方法,属于静态方法,可以直接类名.方法名()进行调用.一般
的是静态方法作为工具方法
静态方法中不能调用对象的资源(对象的属性和方法)

3、static修饰的代码块
在类加载的时候执行,因为类只加载一次,所以static的代码块也只运行一次,
一般是使用static代码块来加载一些静态资源,比如说配置文件;
{
这里就是代码块,和构造方法一样,在对象创建时候执行
}
static{
这里就是静态代码块
}

 

Static和非Static的区别
1.属性
2.方法
3.调用方法
4.归属
static全部属于类
非static属于实例和对象

 

继承:
一、继承的前提条件:
子类和父类之间,必须要满足子类is a父类的逻辑关系,才能继承

二、继承的优点
1.提高代码之间的重用性,(继承之后子类共用父类的代码)
2.提高了代码后期的可维护性(后期代码中需要添加或删除某些代码,只需修改父类代码即可)

三、继承的步骤:
1.将多个类中共有的属性和方法提取出来,建立一个父类
2.在子类后面使用extends关键字完成继承, 子类 extends 父类
3.在子类中可以调用父类的代码
注意:在java中属于单继承,在extends关键字后面只能有一个父类

 

子类访问父类成员:

访问父类构造方法:
super();
super(参数);

访问父类属性:
super.属性名;

访问父类方法:
super.方法名();

注意:this和super都必须出现在第一行,他们之间是互斥的

 

子类不能继承父类的那些资源:
1.private成员
2.子类与父类不在同包,使用默认访问权限的成员
3.构造方法


访问修饰符:
1.private 私有的
2.默认的(friendly) 默认
3.protected 受保护的
4.public 公共的

 

多重继承关系的初始化顺序是怎样的:
1.父类属性
2.父类构造方法
3.子类属性
4.子类构造方法


对象初始化过程:
第一步:在创建类之前,检查类是否已加载(检查硬盘上的.class的文件是否加载到内存中)
如果没有加载就先加载父类的文件,再加载本类的文件
java使用的策略称为:懒惰式加载(按需加载)用到的时候加载,只加载一次。
第二部:分配对象空间,递归分配所有父类的属性空间,
属性会自动的初始化为"0"值;
第三步:属性赋值
第四步:调用父类的构造方法(默认调用父类的无参构造方法)
第五步:调用本类的构造方法


方法重写:
*方法名相同
*参数列表相同
*返回类型相同或是其子类
*子类访问权限大于或等于父类

 

super关键字访问父类的成员:
super只能出现在子类的方法和构造方法中
super调用构造方法时,只能是第一句
super不能访问父类的private成员

 

abstract关键字:
abstract是抽象的意思,可以修饰类和方法,修饰类我们称之为抽象类,修饰方法我们称之为抽象方法
1.abstract 修饰类,抽象类
public abstract class 类名(){}
抽象类用来表示一些抽象的概念

抽象类特点:
*抽象类不能被实例化
*抽象类可以有属性、方法、构造方法,都是用来给子类继承
*抽象类中不一定都是抽象方法。

2.abstract 修饰方法,抽象方法
访问修饰符 abstract 返回值类型 方法名(参数列表);
抽象方法不需要自己实现,由子类来实现

抽象方法特点:
*抽象方法没有方法体
*抽象方法必须出现在抽象类中
*一个类继承抽象类之后必须要实现父类所有的抽象方法

3.抽象类可以继承抽象类

 

final关键字,表示最终的
1.final可以用来修饰类、方法和属性。
2.final修饰的类的不能再被继承。比如:String String是final修饰的类,不能被继承

3.final修饰的方法,不能再被子类重写

4.final修饰的变量初始化以后不能再发生改变
常量规范定义:public static final int ace=12;
final修饰的引用数据类型,引用地址不能发生改变,但是只限定第一层,引用类型的属性值是可以改变的

 


多态:
生活中:
同一种事物,由于条件不同,产生的结果不同。

程序中:
同一种引用类型,使用不同的实例而执行不同的操

实现多态的两个要素:
1.子类重写父类方法
2.使用父类的类型

子类到父类的转换(向上转型):
Pet pet=new Dog();

实现多态的两种形式:
*使用父类作为方法形参实现多态
*使用父类作为方法返回值实现多态


父类到子类的转换(向下转型)
强制类型转换
前提是:已经向上转型
称为:还原行为
语法:
子类名 子类自命名=(子类名) 父类名;
Dog dog = (Dog) pet;

instanceof运算符:
判断对象是否是属于类和接口,返回boolean类型
对象 instanceof 类或接口软件出现的目的:

*用计算机的语言来描述世界

*用计算机解决现实世界的问题

 

面向对象的思想   描述  面向对象的世界

 

面向对象设计和开发程序的好处:

*交流更加流畅

*提高射击和开发效率

 

构造方法:

构造方法是用来描述对象创建的过程,构造方法在对象创建的过程中被调用

 

语法:

    访问修饰符 构造方法名(){

      //初始化代码

}

注意:构造方法名必须和类名相同;没有返回值;

 

  

方法重载:

*方法名相同

*参数项不同

*与返回值和访问修饰符无关

 

 

this关键字用法:

 

调用属性:

this.属性名=100;

 

调用方法:

 this.方法名();

 

调用构造方法:

this();

this(参数);

如何使用:必须是构造方法中的一条语句

 

 

 

面向对象的三大特征之一—封装

 

   封装的概念:

   封装:将类的某些信息隐藏在类内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息

的操作和访问;

 

  封装的好处:

  *隐藏类的实现细节

  *只能通过规定方法访问数据

  *方便加入控制语句

  *方便修改实现

 

  封装的步骤:

    1.修改属性的可见性

    2.创建getter和setter方法

    3.在getter\setter方法中加入属性控制语句

 

 

 

static修饰符:

static的资源属于类级别的资源,静态资源,对于类的所有实例对象共享

static关键字可以用来修饰属性,方法,代码块和内部类

static修饰符的资源,在类加载期间执行

 

1、static修饰的属性: 

static关键字修饰的属性,属于对类所有实例对象共享的变量

访问静态的属性:类名.属性名 

 

2、static修饰方法:

static关键字修饰的方法,属于静态方法,可以直接类名.方法名()进行调用.一般

的是静态方法作为工具方法

静态方法中不能调用对象的资源(对象的属性和方法)

 

3、static修饰的代码块

在类加载的时候执行,因为类只加载一次,所以static的代码块也只运行一次,

一般是使用static代码块来加载一些静态资源,比如说配置文件;

{

这里就是代码块,和构造方法一样,在对象创建时候执行

static{

这里就是静态代码块

}

 

 

 

Static和非Static的区别

1.属性

2.方法

3.调用方法

4.归属

static全部属于类

非static属于实例和对象

 

 

 

继承:

一、继承的前提条件:

子类和父类之间,必须要满足子类is a父类的逻辑关系,才能继承

 

二、继承的优点

1.提高代码之间的重用性,(继承之后子类共用父类的代码)

 2.提高了代码后期的可维护性(后期代码中需要添加或删除某些代码,只需修改父类代码即可)

 

三、继承的步骤:

1.将多个类中共有的属性和方法提取出来,建立一个父类

2.在子类后面使用extends关键字完成继承,   子类 extends  父类

3.在子类中可以调用父类的代码

注意:在java中属于单继承,在extends关键字后面只能有一个父类

 

 

 

子类访问父类成员:

 

访问父类构造方法:

super();

super(参数);

 

访问父类属性:

super.属性名;

 

访问父类方法:

super.方法名();

 

注意:this和super都必须出现在第一行,他们之间是互斥的

 

 

 

子类不能继承父类的那些资源:

1.private成员

2.子类与父类不在同包,使用默认访问权限的成员

3.构造方法

 

 

访问修饰符:

1.private             私有的

2.默认的(friendly)  默认

3.protected           受保护的

4.public              公共的

 

 

 

多重继承关系的初始化顺序是怎样的:

1.父类属性

2.父类构造方法

3.子类属性

4.子类构造方法

 

 

对象初始化过程:

第一步:在创建类之前,检查类是否已加载(检查硬盘上的.class的文件是否加载到内存中)

如果没有加载就先加载父类的文件,再加载本类的文件

java使用的策略称为:懒惰式加载(按需加载)用到的时候加载,只加载一次。

第二部:分配对象空间,递归分配所有父类的属性空间,

属性会自动的初始化为"0"值;

第三步:属性赋值

第四步:调用父类的构造方法(默认调用父类的无参构造方法)

第五步:调用本类的构造方法

 

 

方法重写:

*方法名相同

*参数列表相同

*返回类型相同或是其子类

*子类访问权限大于或等于父类

 

 

 

super关键字访问父类的成员:

super只能出现在子类的方法和构造方法中

super调用构造方法时,只能是第一句

super不能访问父类的private成员

 

 

 

abstract关键字:

abstract是抽象的意思,可以修饰类和方法,修饰类我们称之为抽象类,修饰方法我们称之为抽象方法

1.abstract 修饰类,抽象类

   public abstract class 类名(){}

 抽象类用来表示一些抽象的概念

 

抽象类特点:

 *抽象类不能被实例化

 *抽象类可以有属性、方法、构造方法,都是用来给子类继承

 *抽象类中不一定都是抽象方法。

 

2.abstract 修饰方法,抽象方法

      访问修饰符 abstract 返回值类型 方法名(参数列表);

   抽象方法不需要自己实现,由子类来实现

   

  抽象方法特点:

    *抽象方法没有方法体

    *抽象方法必须出现在抽象类中

    *一个类继承抽象类之后必须要实现父类所有的抽象方法

 

 3.抽象类可以继承抽象类

 

 

 

final关键字,表示最终的

1.final可以用来修饰类、方法和属性。

2.final修饰的类的不能再被继承。比如:String  String是final修饰的类,不能被继承

 

3.final修饰的方法,不能再被子类重写

 

4.final修饰的变量初始化以后不能再发生改变

常量规范定义:public static final int ace=12;

final修饰的引用数据类型,引用地址不能发生改变,但是只限定第一层,引用类型的属性值是可以改变的

 

 

 

 

多态:

生活中:

同一种事物,由于条件不同,产生的结果不同。

 

程序中:

同一种引用类型,使用不同的实例而执行不同的操

 

实现多态的两个要素:

1.子类重写父类方法

2.使用父类的类型

 

子类到父类的转换(向上转型):

Pet pet=new Dog();

 

实现多态的两种形式:

*使用父类作为方法形参实现多态

*使用父类作为方法返回值实现多态

 

 

父类到子类的转换(向下转型)

强制类型转换

前提是:已经向上转型

称为:还原行为

语法:

子类名 子类自命名=(子类名) 父类名;

Dog     dog     =  (Dog)  pet;

 

instanceof运算符:

判断对象是否是属于类和接口,返回boolean类型

对象  instanceof 类或接口

软件出现的目的:*用计算机的语言来描述世界*用计算机解决现实世界的问题
面向对象的思想   描述  面向对象的世界
面向对象设计和开发程序的好处:*交流更加流畅*提高射击和开发效率
构造方法:构造方法是用来描述对象创建的过程,构造方法在对象创建的过程中被调用
语法:    访问修饰符 构造方法名(){      //初始化代码}注意:构造方法名必须和类名相同;没有返回值;
  方法重载:*方法名相同*参数项不同*与返回值和访问修饰符无关

this关键字用法:
调用属性:this.属性名=100;
调用方法: this.方法名();
调用构造方法:this();this(参数);如何使用:必须是构造方法中的一条语句


面向对象的三大特征之一—封装    封装的概念:   封装:将类的某些信息隐藏在类内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的操作和访问;
  封装的好处:  *隐藏类的实现细节  *只能通过规定方法访问数据  *方便加入控制语句  *方便修改实现
  封装的步骤:    1.修改属性的可见性    2.创建getter和setter方法    3.在getter\setter方法中加入属性控制语句


static修饰符:static的资源属于类级别的资源,静态资源,对于类的所有实例对象共享static关键字可以用来修饰属性,方法,代码块和内部类static修饰符的资源,在类加载期间执行
1、static修饰的属性: static关键字修饰的属性,属于对类所有实例对象共享的变量访问静态的属性:类名.属性名 
2、static修饰方法:static关键字修饰的方法,属于静态方法,可以直接类名.方法名()进行调用.一般的是静态方法作为工具方法静态方法中不能调用对象的资源(对象的属性和方法)
3、static修饰的代码块在类加载的时候执行,因为类只加载一次,所以static的代码块也只运行一次,一般是使用static代码块来加载一些静态资源,比如说配置文件;{这里就是代码块,和构造方法一样,在对象创建时候执行} static{这里就是静态代码块}


Static和非Static的区别1.属性2.方法3.调用方法4.归属static全部属于类非static属于实例和对象


继承:一、继承的前提条件:子类和父类之间,必须要满足子类is a父类的逻辑关系,才能继承
二、继承的优点1.提高代码之间的重用性,(继承之后子类共用父类的代码) 2.提高了代码后期的可维护性(后期代码中需要添加或删除某些代码,只需修改父类代码即可)
三、继承的步骤:1.将多个类中共有的属性和方法提取出来,建立一个父类2.在子类后面使用extends关键字完成继承,   子类 extends  父类3.在子类中可以调用父类的代码注意:在java中属于单继承,在extends关键字后面只能有一个父类


子类访问父类成员:
访问父类构造方法:super();super(参数);
访问父类属性:super.属性名;
访问父类方法:super.方法名();
注意:this和super都必须出现在第一行,他们之间是互斥的


子类不能继承父类的那些资源:1.private成员2.子类与父类不在同包,使用默认访问权限的成员3.构造方法

访问修饰符:1.private             私有的2.默认的(friendly)  默认3.protected           受保护的4.public              公共的


多重继承关系的初始化顺序是怎样的:1.父类属性2.父类构造方法3.子类属性4.子类构造方法

对象初始化过程:第一步:在创建类之前,检查类是否已加载(检查硬盘上的.class的文件是否加载到内存中)如果没有加载就先加载父类的文件,再加载本类的文件java使用的策略称为:懒惰式加载(按需加载)用到的时候加载,只加载一次。第二部:分配对象空间,递归分配所有父类的属性空间,属性会自动的初始化为"0"值;第三步:属性赋值第四步:调用父类的构造方法(默认调用父类的无参构造方法)第五步:调用本类的构造方法

方法重写:*方法名相同*参数列表相同*返回类型相同或是其子类*子类访问权限大于或等于父类


super关键字访问父类的成员:super只能出现在子类的方法和构造方法中super调用构造方法时,只能是第一句super不能访问父类的private成员


abstract关键字:abstract是抽象的意思,可以修饰类和方法,修饰类我们称之为抽象类,修饰方法我们称之为抽象方法1.abstract 修饰类,抽象类   public abstract class 类名(){} 抽象类用来表示一些抽象的概念
抽象类特点: *抽象类不能被实例化 *抽象类可以有属性、方法、构造方法,都是用来给子类继承 *抽象类中不一定都是抽象方法。
2.abstract 修饰方法,抽象方法      访问修饰符 abstract 返回值类型 方法名(参数列表);   抽象方法不需要自己实现,由子类来实现     抽象方法特点:    *抽象方法没有方法体    *抽象方法必须出现在抽象类中    *一个类继承抽象类之后必须要实现父类所有的抽象方法
 3.抽象类可以继承抽象类


final关键字,表示最终的1.final可以用来修饰类、方法和属性。2.final修饰的类的不能再被继承。比如:String  String是final修饰的类,不能被继承
3.final修饰的方法,不能再被子类重写
4.final修饰的变量初始化以后不能再发生改变常量规范定义:public static final int ace=12;final修饰的引用数据类型,引用地址不能发生改变,但是只限定第一层,引用类型的属性值是可以改变的



多态:生活中:同一种事物,由于条件不同,产生的结果不同。
程序中:同一种引用类型,使用不同的实例而执行不同的操
实现多态的两个要素:1.子类重写父类方法2.使用父类的类型
子类到父类的转换(向上转型):Pet pet=new Dog();
实现多态的两种形式:*使用父类作为方法形参实现多态*使用父类作为方法返回值实现多态

父类到子类的转换(向下转型)强制类型转换前提是:已经向上转型称为:还原行为语法:子类名 子类自命名=(子类名) 父类名;Dog     dog     =  (Dog)  pet;
instanceof运算符:判断对象是否是属于类和接口,返回boolean类型对象  instanceof 类或接口











































































































































































































以上是关于java——面对对象的主要内容,如果未能解决你的问题,请参考以下文章

Java面对对象程序设计——面对对象

Java面对对象程序设计——面对对象

Java入门——面对对象(上)

java----面对对象

java面对对象

JAVA面对对象三大特征之继承多态