面向对象编程

来源:互联网 发布:好的比价软件 编辑:程序博客网 时间:2024/06/06 03:21

1面向对象:

基本思想是把问题看成是若干个对象组成的,这些对象之间是独立的,但又可以相互配合 连接 和协调,从而共同完成整个程序要实现的任务和功能。

面向对象的三大特征: 封装 继承 多态。

 

2对象

对象是用来描述客观事物的一个实体。

 

3

类是具有相同属性和方法的一组对象的集合。类定义了对象将会有的属性(特征) 和方法(行为)。

类与对象的关系  抽象与具体。

 

定义类

 

【访问修饰符】class类名{

  //省略类内部的具体代码

}

访问修饰符可选

类名首字母应大写

 

属性

类的内部主要包含属性和方法 对象的特征在类中表示称为类的属性

定义属性:

【访问修饰符】数据类型 属性名

public String name;

方法

对象执行操作的行为成为类的方法。

[访问修饰符】返回类型 方法名称(参数类型  参数1,参数2.。。){

   //方法体          

}

访问修饰符可选

Void 表示没返回值 不必用return 返回具体数据 但可以用return关键字退出方法

返回类型不为void一定要用return返回对应类型的结果

public void work(){

Syso

}

创建和使用对象

类名 对象名=new类名();

左边的  类名  为对象的数据类型

右边的类名()  称为类的构造方法

Person hanbing=new Person();

使用对象

引用对象的属性和方法需要使用.

对象名 点  属性

对象名  点 方法

对象数组

对象数组的数据类型就是具体的类名 对象数组内存储的就是这个类的对象  

每个数组元素就是一个对象 当根据下标找的某个元素时 可以按照对象的使用方法来使用该元素

成员方法

类成员主要包含成员方法和成员变量

带参数的工作方法

带参数的work()方法可以接受 用户输入 的内容  

创建work()方法时定义的参数叫做形式参数,简称 形参

调用方法时传入的参数叫做实际参数 ,简称 实参

方法重载

特点:

在同一个类中 方法名相同 参数的个数或类型不同

成员变量

1作用域

类中的属性,也就是直接在类中定义的变量,称作成员变量,它定义在方法的外部

2成员变量可以在声明时赋初值

局部变量

定义在方法中的变量

局部变量在使用前需要赋初值

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

1作用域不同

局部变量的作用域仅限于定义它的方法

2初始值不同

Java 可以给成员变量赋初值 但是不会给局部变量赋初值,因此局部变量必须要定义赋值后再使用

3局部变量可以和成员变量同名 并且在使用时局部变量有更高的优先级

数据类型

变量的类型有 基本数据类型和 引用数据类型

引用数据类型有三种:类 数组 接口。

引用数据类型和基本数据类型在传参时的区别

对于基本数据类型 改变一个变量的值不会影响另一个变量的值

对于引用数据类型  赋值指向同一个内存空间  两个一起变

构造方法

主要作用是进行一些数据的初始化

【访问修饰符】方法名 (【参数列表】){

//省略方法体

}

参数列表可选

构造方法的方法名与类名相同

当开发人员没有编写自定义构造方法时java会自动添加默认构造方法 默认构造方法没有参数

如果自定义了一个或多个构造方法java不会自动添加默认的构造方法

构造方法的重载

 

this关键字的用法

书上:

因为this是在对象内部指代自身的引用,所以this只能调用实例变量 实例方法 和构造方法

This不能调用类变量和类方法 ,this也不能调用局部变量

封装概述

封装

实质就是将类的状态信息隐藏在类的内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的操作和访问

 

封装的步骤

1修改属性的可见性

Person类中的属性由public改为private即可

  将public改为private后,其他类就无法访问了 如果要访问需设置setter getter 方法

2设置setter getter方法

3设置属性的存取限制

包的作用

Java中只有在不同的包中  类才可以重名

package 包名;

包的命名规则

一个唯一的包名前缀常是全部小写的ASCLL字母,并且是一个顶级域名com edu gov net org

通常使用组织的网络域名的逆序 列:入过域名为javagroup.net,包可以为

Package net javagroup.research.powerproject;

package cn.bdqn.pack1;

包的使用

1声明包的含义是声明当前类所处的位置

2导入包的含义是声明当前类中要使用到的其它类所处的位置

 

 

 

同一类

同一包

子类

其它地方

private

可以

不可以

不可以

不可以

默认修饰符

可以

可以

不可以

不可以

protected

可以            

可以

可以

不可以

public

可以

可以

可以

可以

 

 

Static关键字

使用static可以实现通过类名加  .点  直接调用类的成员 不需要创建类的对象 。使用static修饰的属性和方法属于类,不属于某个具体的对象

1 static 修饰的属性称为静态变量或者类变量 没有使用static修饰的属性称为实例变量

2  static修饰属性最常用的场景就是定义使用final关键字修饰的常量

修饰方法

Static 修饰的方法称为静态方法或者类方法  不使用ststic关键字修饰的方法称为实例方法

提示

在静态方法中不能直接访问实例变量和实例方法

在实例方法中可以直接调用类中定义的静态变量和静态方法

 

0 1
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 7个月宝宝坐不住怎么办 三个月宝宝白天闹觉怎么办 3个月宝宝不追声怎么办 一岁宝宝垃肚子怎么办 新生儿四天没大便怎么办老放屁 新生儿四五天不大便怎么办 新生儿五天没解大便怎么办 婴儿五天没拉大便怎么办 宝宝45天不拉屎怎么办 儿童4天不大便怎么办 4一5天不大便怎么办 俩月的宝宝便秘怎么办 宝宝6天没大便怎么办 新生儿3天不大便怎么办 50天宝宝几天没有大便怎么办 宝宝一吃奶就拉怎么办 2个月宝宝不拉屎怎么办 吃苹果呛到气管怎么办 三个月宝宝五天没拉大便了怎么办 三个月的宝宝五天不大便怎么办 十天婴儿不大便怎么办 宝宝断奶不喝牛奶怎么办 宝宝喝羊奶大便干燥怎么办 4个月宝宝睡眠少怎么办 8个月婴儿不吃奶粉怎么办 满月的宝宝黄疸高怎么办 刚满月的宝宝黄疸高怎么办 换奶粉孩子不喝怎么办 宝宝整夜哭闹不睡觉怎么办 满月宝宝整夜不睡觉怎么办 6个半月宝宝一喂粥就哭怎么办 宝宝敷鸡蛋白过敏怎么办 七个月宝宝不吃米糊怎么办 涨奶引起的发烧怎么办 8个月宝宝积食怎么办 宝宝吃奶一会就睡了怎么办 宝宝喝凉酸奶拉肚子怎么办 宝宝戒奶不吃奶粉怎么办 三个月大婴儿不吃奶粉怎么办 三个月大的婴儿不吃奶粉怎么办 40天宝宝肚脐凸怎么办