## 面向对象编程上 ##

面向对象编程

面向对象的设计思想

面向过程思想思考时:以一个具体的流程为单位,考虑它的实现办法。关心功能的实现。流程与流程之间相互关联、流程间的息息相关,注重最后功能的实现。代码间耦合性较强!不容易程序后期的扩展和维护。

面向对象考虑问题时:以具体的事物为单位,考虑它的属性(特征)及动作(行为)。优点,接近现实生活中正常思维方式,服务于生活。在面向对象的编程语言中独有设计模式一说(设计体系化模式化的流程),并且让代码更加模块化。降低代码之间的耦合更利于项目的扩展和维护;面向对象的编程中一定会用到面向过程的编程思想!面向对象编程有四大特征:抽象、封装、继承、多态!

类和对象的理解

1、抽象:对同一类别事物共同特征(属性)和行为(方法)进行总结,归纳。抽象后总体的名字叫类!取名的过程叫封装!
2、封装:就是将一类事物的属性和方法一起包装到一个程序单元中,这个程序单元以类的形式实现。
3、类(class)和对象(object)是面向对象方法的核心概念。
1)类的定义:—类是对一类事物的具体描述,是抽象的、概念上的定义;
2)类的作用:用来创建对象的工具。类描述了对象的属性和对象的行为,类是对象的模板,图纸。
3)对象的定义:—对象是实际存在的该类事物的每个个体,因而也成称为实例(instance)
4)类和对象的关系:
对象抽象成为类(属性(成员变量)、方法(函数));
类实例化成为对象(特征或状态、操作或行为);
抽象和封装的最终体现形式是类!
对象—>抽象—>封装—>类—>对象
类中成员变量的定义
定义成员的语法:
位置划分:
局部变量:使用时一定要初始化!不能加访问修饰符。只在方法中使用!
成员变量:变量类型可以用基本类型和引用类型;可以不对其初始化;如果不初始化系统会对他使用默认值!作用域是整个类!
初始化

对象的概念:
对象就是指:现实存在的一个具体事物!
特点:对象唯一!规则、环境属于对象!
对象的创建和使用:利用new创建对象的标识!调用类的构造方法,去创建对象!
classname objectname = new classname`constructor();
类的方法的定义:实例方法通过对象调用、类方法通过类调用!完成某一个功能的实际操作!作用:提高代码的重用性,更加模块化开发!
访问修饰符 返回值类型(无(void)) 方法名称 (参数(无void)){}
形参:临时数据传递!没有具体数据,而且存储数据不固定!
实参:调用方法时,传递的参数为实参指具体的数据!
有返回值的方法中,return一定是该方法的最后一句,且该方法只有一个返回值!
构造方法
Java中对象的创建由构造方法创建!new是创建对象的标识调用构造方法!
定义:1)构造方法的参数名称与类名相同,在构造方法中没有void也没有return。
访问修饰符 类名(){}
作用:1)创建对象;2)初始化成员变量,在构造方法中为成员变量赋值。
分类:1)无参数的构造方法:显示的无参构造方法(自己创建的)、隐示的无 参构造方法(Java编译器提供的默认构造方法。当有自己创建的构造方法,Java将不再提供默认的构造方法!若还要使用默认则自己添加!
2)有参数的构造方法:

方法的重载(overload)

定义:在同一个类中相同的方法名,不同的参数列表(参数个数、类型、顺序的不同)就是方法的重载!
调用方法时,根据传递参数列表决定对应哪个方法!

this关键字

每个类每个非静态方法(没有被static修饰)都会隐含一个this名称,代表调用本方法的对象,在类中调用这个方法的对象,
当局部成员变量与成员变量一致时,以局部变量为主。
当类中的方法的参数名与类中的成员变量名相同时,为了避免参数作用域范围覆盖了成员变量的作用范围。
在构造函数传参中,如果不this指定,则,创建的对象的值不是对应的成员变量的值,用this调用无效!
当this出现在构造方法的第一行时,说明这个构造方法调用了其他方法。将其中的参数传递给相应参数的构造函数
this(参数列表)

方法的参数类型的传递

方法的执行顺序:
==JavaBean==
封装的概念。
规范:1)成员变量属性私有2)提供一个公共的无参数的构造方法3)为私有属性提供公共的get和set方法。
作用:用来对数据进行临时存储!
使用:实例对象不能直接引用,需通过get和set方法!
set方法时用来给私有属性赋值,无返回值有参数
get方法用来获得属性的值,有返回值无参数
命名:以set或get开头,后面跟属性名称,并且属性名称的首字母要大写。
==采用传值的方式==
—基本数据类型的参数传递:传递的该数据的本身的副本若要引用加&符号也可传地址。
在方法中可能会改变,但在方法之外还是参数本身!

—引用数据类型的参数传递:传递的是对象的引用,传递的是对象的地址,在方法中修改也会改变本身的值。
对数组的操作本身也会发生变化。通过地址的传递。
方法的递归==
在Java语言中所谓的递归就是指方法本身对自己的调用!if+递归相当于循环。

JDK主要包介绍

位于java.lang–包含一些Java语言的核心类,如:String、Math、Integer、Systemd和Thread,提供一些常用功能。(此包非常常用,所以在任何类中不用导入就可能直接使用)
Java.util–包含一些工具类,如定义系统特性、日期时间、日历、集合类等。
java.io–包含能提供多种输入输出的流类。
java.net–包含执行网络相关的操作类。
java.sql–Java操作数据库的一些API
java.text–包含了一些用来处理文本、日期、数字和消息的类和接口。
java.awt–包含了构成抽象窗口工具集的多个类,这些类被用来构建和管理应用程序的图形用户界面(GUI)。
javax.swing–包含了构成“轻量级”窗口组件。

package和import语句

==包==
作用:为了便于管理大型软件系统中数目众多的类,解决类命名冲突的问题,Java引入了包。避免命名冲突!
声明:Java源文件中的第一条语句。用“.”来指明包(目录)的层次。包对应着文件系统的目录层次结构。
编译并生产包==
javac -d .(目录,现指当前目录) 类名.java
运行 Java 包名.类名
包名.类名 叫做类的权限定名
==导入包==
import 在package下面
不在同一package需要导包
在同一包中的类可以直接互相引用,无需import语句。
自定义的类都放置包中,自定义包名中不要出现Java

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值