一.面向过程的编程思想
在编程中,以流程为基本单位,注重的是功能的实现
缺点:代码的耦合性较高,不利于维护,可扩展性较低
二.面向对象的编程思想
在现实生活中,以具体的事物(对象)为单位,从它的属性(特征)和功能
(行为)进行描述,就是在利用面向对象的编程思想
特点:
1.面向对象的编程中一定会用到面向过程的编程思想
2.所有的编程语言都是来源于生活服务于生活
3.面向对象的编程思想更贴近于现实生活中人类的正常思维方式
4.在面向对象编程的语言中有设计模式一说
5.面向对象的四大特征:
抽象、封装、继承、多态
三.对象
对象就是现实生活中具体存在的一个事物
《java编程思想》——>万事万物 ,皆对象
特点:
1.无论两个事物有多么相似或相近,永远都是两个不同的对象
2.一项法律、法规、规章制度,政策都是对象
四.抽象
所谓的抽象,就是把同一类中共有的属性(特征)和功能(行为)进行抽取,归纳,总结
注意:其实抽象就是对同一类事物进行整体的概括性的描述
五.封装
所谓的封装就是包装,就是把抽象出来的属性和行为进行包装
目的:
提高了抽象出来的属性和行为的安全系数
封装包括:
属性的封装和功能(方法)的封装
注意:
封装不是绝对的封装,在适当的时候,可以通过其它方式来访问封装中的属性和功能
一个完整的封装一定是把属性和方法封装在一块
属性的封装和方法的封装是密不可分的
六.类
1.抽象,封装的具体的呈现方式就是类(class)
2.类和对象的关系
类是对对象的抽象
对象是类的实例化
3.如何定义类
语法:
[访问修饰符] class 类名{
}
类命名:
首字母一定要大写,如果类名有多个单词组成,则每个单词的首字母都要大写。大驼峰命名法
七.方法
方法就是用来实现某种功能效果的代码块
定义语法:
[访问修饰符] 返回值类型 方法名称(参数列表){
}
step:无返回值无参数的方法。语法:
[访问修饰符] void 方法名称(){
}
void 就是表示无返回值的方法
step:无返回值有参数的方法。语法:
[访问修饰符] void 方法名称 (参数列表){
}
1.方法中参数称为形式参数(形参),数据类型 参数名称
如果有多个参数,参数之间用逗号隔开
2.在调用有参数的方法时,需要传递具体数据(实际参数——>实参)
3.在传递参数时,一定要和方法中参数的顺序一致
step:有返回值无参数的方法。语法:
[访问修饰符] 返回值类型 方法名称(){
//方法的最后一句,添加上return返回值
return 返回值
}
返回值类型由返回值决定,而且有返回值的方法只能一次返回一个值
step:有返回值有参数的方法。语法:
[访问修饰符] 返回值类型 方法名称(参数列表){
return 返回值
}
八.对象的创建和使用
1.构造方法
a).方法名称和类名相同
b).没有返回值,也没有void
c).不能被static等关键字修饰
2.语法:
[访问修饰符] 类名(参数列表){
}
3.创建对象的语法:
类名 对象名称=new 构造方法();
4.对象的使用:
对象可以调用属相和方法
对象名称.属性名称;
对象名称.属性名称(参数列表);
5.构造方法作用:
1.创建对象
2.对成员属相(全局变量)进行初始化
6.构造方法的分类:
1.无参数的构造方法和有参数的构造方法
2.无参数的构造方法包括:
a).隐式无参数的构造方法
当一个类中,没有任何形式的构造方法时,JVM会为当前的类提供
一个隐式的无参数的构造方法
’ b).显示的无参数的构造方法
3.无参数的构造方法又叫“默认的构造方法”
4.有参数的构造方法,在使用时需要传递实参
如果一类中已经存在一个用参数的构造方法,还想通过无参数的构造方法创建
对象,则可以直接在当前类中添加一个无参数的构造方法
注意:
当一个类中,已经显示的存在了一个任何形式的构造方法,那么JVM都不会再为当前类提供一个隐式的无参数的构造方法
一个类中可以有多个构造方法,但是构造方法的参数不能相同
九.方法重载
方法重载是多态的一种表现
多态:就是同一个事物,在不同的情况下有多种表现形式
在同一个类中,有多个方法名称相同,但是参数列表不同,参数列表的不同包括(个数、类型、顺序的不同),这就是方法重载
注意:
1.普通方法,构造方法都可以方法重载
2.方法的返回值类型不同,不能算方法的重载
十.this关键字
注意:
当方法中的参数名称或局部变量名称和成员属性名称一致时,会以参数名称或局部变
量为主(就近原则)
前提条件:
this只能在没有被static修饰的方法中使用
作用:
this表示对当前类的某个对象的引用(就是说可以把this关键字当作对象来使用)
注意:
哪个对象调用该方法,那么该方法中的this关键字就指向调用该方法的对象
用法:
1.当方法中的参数名称或方法中的局部变量名称和类中的成员属性(全局变量)名称完全一致时
需要用this来区分作用域
2.当this(参数列表)的形式,出现在构造方法的第一句代码时,就表示当前的构造方法,调用
了该类中其他的构造方法
十一.代码执行的流程
普通方法之间的调用,直接写方法名称即可,无需通过对象来调用
代码执行的流程:
main——>调用其他方法——>main方法
十二.方法中参数的传递
在java中基本数据类型和引用数据类型进行参数传递时,都是采用的
值传递(就是传递的具体的数据)
基本数据类型传递的是值得本身(基本数据类型传递时,就是把本身复 制了一份,进行传递,无论目标方法怎么更改和这个值的本身没有任何
关系)
引用数据类型传递的是值本身所在的内存地址
十三.打包
通过package来创建带包的类,语法:
package 包名;
注意:包名的目录层次通过【.】来表示
编译带包的类,如果从当前目录生成带包结构的字节码,语法:
javac -d . 类名.java
如果从指定的目录生成,带包结构的字码,语法:
javac -d 目录 类名.java
运行带包的字节码,语法:
Java 包名.类名;
注意:
包名,类名又叫类的全限命名
十四.导包
通过import导入目标类所在的包,语法:
import 包名.类名;或import 包名.*;
注意:
1.import一定要位于package语句的下面
2.如果两个类位于同一个包中,无需导包