//梦开始的地方
第一章_java语言概述
第二章_基本语法
第三章_数组
第四章_面向对象编程(上)
java面向对象学习的三条主线:
- Java类及类的成员:(需要整我牢固 )(属性,方法,构造器):代码块,内部类
- 面向对象的三大特征:封装性,继承性,多态性,(抽象性)
- 其它关键子:this,super,static,final,abstract,interface,package,import,等
面向过程与面向对象
面向过程(POP)与面向对象(OOP)
- 二者都是一种思想,面向对象时相对于面向过程而言的。面向过程,强调的是功能行为,以函数为最小单位,考虑怎么做。
- 面向对象,将功能封装进对象,强调具备功能的对象,以类/对象为最小单位,考虑谁来做。
- 面向对象更加强调运用人类在日常的思维逻辑中采用的思想方法与原则,如抽象,分类,继承,聚合,多态等。
面向对象的思想概述
面向对象分析方法分析问题的思路和步骤:
- 根据问题需要,选择问题所针对的现实世界中的实体。
- 从实体中寻找解决问题相关的属性和功能,这些属性和功能就形成了概念世界中的类。
- 把抽象的实体用计算机语言进行描述,形成计算机世界中类的定义。即借助某种程序语言,把类构造成计算机能够识别和处理的数据。
- 将类实例化成计算机世界中的对象。对象是计算机世界中解决问题的最终工具。
1.面向对象的两个要素:类和对象
- 类(Class)和对象(OBject)是面向对象的核心概念。
- 类是对一类事物的描述,是抽象的,概念上的定义
- 对象是实际存在的该类事物的每个个体,因而也成为实例(instance)
面现象对象的程序设计重点是类的设计
设计类就是设计类的成员
一个类有常见的属性和行为构成
2.类的成员结构
属性 = 成员变量,行为 = 成员方法或函数 ,构造器,代码块,内部类
3.基本的类的设计和对象的创建
1.创建类设计类的成员
2.创建类的对象
3.通过”对象.属性"或"对象.方法"调用对象的功能
public class ClassTest{
//main接口
public static void main(String[] args){
//实例化类
Person p1 = new Person();
//调用成员变量并赋值"对象.属性"
p1.name = "张三";
p1.age = 11;
System.out.println("性别: " + p1.name + " 年龄:" + p1.age);
//调用方法"对象.方法"
p1.eat();
p1.sleep();
}
}
//类
class Person {
//属性,成员变量
String name;
int age;
//行为,成员方法
public void eat(){
System.out.println("吃饭饭");
}
public void sleep(){
System.out.println("睡觉觉");
}
}
4.类多个对象的关系
如果一个类有多个对象,则每个对象都有一套类的属性。(非static)
5.对象的内存解析
- 堆(heap),此内存区域的唯一目的就是存放对象实例,几乎所有的对象实例都在这里分配内存。这一点在java虚拟机规范中描述是:所有的对象实例以及数据都要在堆上分配。
- 栈(stack),是指虚拟机栈。虚拟机栈用于存储局部变量等。局部变量表存放了编译期可知长度的个各种基本数据类型(boolean,byte,char,int,float,long,double),对象引用(reference类型,它不等同于对象本身,是对象在堆内存的首地址)。方法执行完,自动释放
- 方法区(Method Area),用于存储已被虚拟机加载的类信息,常量,静态,变量,即时编译器编译后的代码等数据。
类的成员之一:属性
类中的属性使用
属性 (成员变量)vs 局部变量
1.相同点:
1.1 定义变量的格式:数据类型 变量名 = 变量值
1.2 先声明,后使用
1.3 变量都有其对应的作用域
2.不同点:
2.1 在类中声明的位置不同
属性:直接定在类的一对{}中
局部变量:声明在方法内,方法形参,构造器内部,构造器,代码块内的变量
2.2权限修饰符的不同
属性:可以在声明属性时,指明其权限,使用权限修饰符。
常用的权限修饰符:private,public,缺省,protected
2.3默认初始化值得情况:
局部变量: 没有默认初始化值
属性: 类得属性,根据其类型,都有默认初始化值。
- 整形(byte,short,int,long):0
- 浮点型(float,double):0.0
- 字符型(char):0 或(‘\u0000’)
- 布尔型 (boolean):false
引用数据类型(类,数组,接口):null
2.4在在内存中加载得位置
属性: 加载到堆空间中
局部变量: 加载到栈空间
类的成员之二:方法(Method)
方法的举例与声明格式
无返回值 | 有返回值 | |
---|---|---|
无形参 | void 方法名() {} | 返回值类型 方法名 () {} |
有形参 | void 方法名(形参列表) {} | 返回值类型 方法名(形参列表) {} |
方法的声明
权限修饰符 返回值类型 方法名(形参列表){
方法体;
}
- 权限修饰符
java规定的4中权限修饰符:private,public,缺省,protected
- 返回值类型
如果方法有返回值,则必须在方法声明时,指定返回值的类型。同时,方法中,需要使用。return 关键字来返回指定类型的变量或常量 “return 数据”。
如果方法中没有返回值,则方法声明时,使用void表示。通常,没有返回值得方法中,就不需要使用return.但是,如果使用得话,只能"return;"表示结束此方法得意思。
- 方法名
见名知意,遵循标识符得规范
- 形参列表
方法可以声明0到多个形参
格式:数据类型1 形参1,数据类型2 形参2,…
- 方法体
方法功能的体现
- return 关键字的使用
1.使用范围:使用在方法体中
2.作用:
①结束方法
②针对于有返回值类型的方法,使用”return 数据“方法返回所要的数据。
3.注意点 return关键子后面不可以声明执行语句。