JavaSE基础笔记四

第三章 面向对象(一)

1.(了解)面向对象和面向过程

2.面向对象的编程关注于类的设计

1)一个项目或者工程,不管多么庞大,一定是由一个一个的类构成

2)类是抽象的,好比是制造汽车的图纸,车是由图纸制造的,其实就是类的实例化

3完成一个项目(功能)的思路

1)所需要完成的功能对应的类的对象是否存在

2)若存在,则通过对象直接调用对应的类中的属性或者方法即可

3)若不存在,则要创建类的对象,甚至说类都不存在,就需要设计类

4.面向对象编程的三条主线:

1)类及类的构成成分:属性 方法 构造器 代码块 内部类

2)面向对象编程的特征:封装性 继承性 多态性(抽象性)

3)其他的关键字:this super package import static final abstract interface

类及对象

1.关注于类的设计

2.类的组成成分:

1)属性(成员变量 Field)

2)方法(成员方法 函数 Method)

2.1属性:

成员变量 vs 局部变量

相同点:1.遵循变量生命的格式:数据类型 变量名 = 初始化值

2.都有作用域

不同点:1.声明的位置不同:成员变量:声明在类里,方法外

局部变量:声明在方法内,方法的形参部分,代码块内

2.成员变量的修饰符有四个:public private protected 缺省

局部变量没有修饰符,与所在的方法修饰符相同

3.初始化值:一定会有初始化值。

成员变量:如果在声明的时候,不显式的赋值,那么不同数据类型会有不同的默认初始化值

byte short int lang====>0

float double====>0.0

char====>空格

boolean====>false

引用类型变量====>null

局部变量:一定要显式的赋值(无默认初始化值)

4.在内中存放的位置不同:成员:堆空间 局部:栈空间

总结:关于变量的分类:1按照数据类型不同:基本数据类型(8种)&引用数据类型

2.按照声明的位置不同:成员变量&局部变量

2.2方法:提供某种功能的实现

1)格式:权限修饰符 返回值类型(void:无返回值/具体返回值)方法名(形参){}

方法成员的基本声明与定义方式:

存取修饰 返回值类型 方法名(参数行){

//实例

return 返回值;

}

2)关于返回值类型:void:表明此方法不需要返回值

有返回值的方法:在方法的最后一定有return+返回值类型对应的变量

特点:void和return不能出现在同一个方法内

3)方法内可以调用本类中其他方法或属性,但不能在方法中再定义方法

3.面向对象编程思想的落地法则一:

1)设计并创建类及类的成分

2)实例化类的对象

3)通过“对象.属性”或“对象.方法”的形式完成某项功能

4.类的初始化的内存解析

4.1内存划分的结构:

栈(stack):局部变量、对象的引用名、数组的引用名

堆(heap):new出来的“东西”(如:对象、数组的实体),含成员变量

方法区:包含字符串常量

静态域:声明为static的变量

4.2 理解的基础上,学会基本的创建的类的对象在内存中的运行

方法的重载

方法的重载(overload):

要求:1.在同一个类中 2.方法名必须相同 3.方法的参数列表不同(①参数的个数不同②参数类型不同)

补充:方法的重载与方法的返回值类型没有关系

注意方法有无返回值

可变个数的形参的方法

1.格式:对于方法的形参:数据类型...形参名

2.可变个数的形参的方法与同名的方法之间构成重载

3.可变个数的形参在调用时,个数从0开始,到无穷多个都可以

4.使用可变多个形参的方法与方法的形参使用数组是一致的

5.若方法中存在可变个数的形参,那么一定要声明在方法形参的最后

6.在一个方法中,最多声明一个可变个数的形参

java的值传递机制

方法的参数传递

1.形参:方法声明时,方法小括号内的参数

实参:调用方法时,实际传入的参数的值

2.规则:java中的参数传递机制:值传递机制

1)形参是基本数据类型的:将实参的值传递给形参的基本数据类型的变量

2)形参是引用数据类型的:将实参的应用类型变量的值(对应的堆空间的对象实体的首地址值)传递给形参的引用数据类型的变量

面向对象的特征一:封装性

1.面向对象的特征一:封装与隐藏

问题:当创建的类的对象以后,如果直接通过“对象.属性”的方式对相应的对象属性赋值的话,可能会出现不满足实际情况的意外,我们考虑不让对象来直接作用属性,

而是通过“对象.方法”的形式,来控制对象对属性的访问,实际情况中,对属性的要求就可以通过方法来体现

2面向对象思想的落地法则二:(封装性思想)①将类的属性私有化 ②提供公共的方法(setter&getter)来实现调用

3.权限修饰符:public private 缺省 protected

可用来修饰属性、方法、构造器

注:1)权限从大到小排列:public protected 缺省 private

2)修饰类的权限修饰符有:public  缺省

构造器

一.

类的第三个成员:构造器(constructor 构造方法)

作用:①创建对象   ②给创建的对象的属性赋值

1.设计类时,若不显式声明类的构造器的话,程序会默认提供一个空参的构造器

2.一旦显式的定义类的构造器,那么默认的构造器就不再提供

3.如何声明类的构造器:格式:权限修饰符 类名(形参){  }

4.类的多个构造器之间构成重载

构造器无返回值

二.

类对象的属性赋值的先后顺序:

①属性的默认初始化②属性的显式初始化③通过构造器给属性初始化④通过“对象.方法”的方式给属性赋值⑤通过代码块赋值


this关键字

this:

1.使用在类中,可用来修饰属性、方法、构造器

2.表示当前对象或者当前正在创建的对象

3.当形参与成员变量重名时,如果在方法内部需要使用成员变量,必须添加this来表明该变量是类成员

4.在任意方法内,如果使用当前类的成员变量或成员方法可以在其面前添加this,增强程序的阅读性

5.在任意构造器中使用“this(形参列表)”显式的调用本类中重载的其他的构造器

5.1要求“this(形参列表)”要声明在构造器的首行

5.2类中若存在n个构造器,那么最多有n-1个构造器中使用了this

package import

package:

1.声明源文件所在的包,写在程序的第一行

2.每“.”一次,表明一层文件目录

3.包名都要小写

import:

1.显式导入指定包下的类或接口

2.写在包的声明和源文件之间

3.如果需要引入多个类或接口,那么久并列写出

4.如果导入的类是java.lang包下的,就不需要显式的声明

5.理解“.*”的概念。比如java.util.*;

6.如何处理同名类的导入。

7.import static 表示导入指定类的static的属性或者方法

8.导入java.lang.*只能导入lang包下的所有类或接口,不能导入lang的子包下的类或接口


时间: 2024-11-09 02:13:01

JavaSE基础笔记四的相关文章

JavaSE基础笔记513

JavaSE笔记整理 java概述 1. 人机交互 人机交互:是指人与计算机之间使用某种对话语言,以一定的交互方式,为完成确定任务的人与计算机之间的信息交换过程. 交互方式 图形化界面:这种方式简单直观,使用者易于接受,容易上手操作. 命令行方式:需要有一个控制台,输入特定的指令,让计算机完成一些操作.较为麻烦,需要记住一些命令. 2. 键盘功能键介绍 这些按键要求的不是认识:而是常用. ′ Tab *** 缩格 ′ 空格 Enter ****** ′ Window ′ Shift *** (C

JavaSE基础笔记六

第五章 面向对象三 1.static关键字 1.static:静态的,可用来修饰属性,方法,代码块,内部类 2.static修饰属性(类变量): ①由类创建的所有的对象,都共用这一个属性 ②当其中一个对象对此属性进行修改,会导致其他对象对此属性的一个调用.vs实例变量(非static修饰的属性,各个对象各自拥有一套副本) ③类变量随着类的加载而加载.而且独一份 ④静态的变量可以直接通过"类.类变量"的形式来调用 ⑤类变量的加载是要早于对象,所以当有对象以后,可以"对象.类变量

JavaSE基础笔记五

第四章 面向对象(二) 1.面向对象的特征二:继承性 1.为什么要有继承性:减少代码的冗余 2.通过"class A extends B"类实现类的继承 子类(派生类):A   父类:(或基类 SuperClass) :B 3.子类继承父类后,父类中声明的属性.方法,子类就可以获取到 明确:当父类中有私有的属性或方法时,子类同样可以获取得到,只是由于封装性的设计,使子类不可以直接调用罢了 子类除了通过继承,获取父类的结构之外,还可以定义自己的特有的成分 extends:子类是对父类功能

JavaSE基础笔记十三

第十三章 java反射机制 1.如何创建Class的实例 1.1过程:源文件经过编译(javac.exe)后,得到一个或多个.class文件, .class文件经过运行(java.exe),就需要进行类的加载(通过JVM的类的加载器),记载到内存中的缓存,每一个放入缓存中的.class文件就是一个Class的实例 1.2Class的一个对象,对应着一个运行时类,相当于一个运行时类本身充当了Class的一个实例. 1.3java.long.Class是反射的源头.接下类涉及到反射的类都在java.

JavaSE基础笔记三

四.流程控制 分支结构: 1.条件判断: ①if(条件表达式){ } ②if(条件表达式){ //执行语句1: }else{ //执行语句2: } ③if(条件表达式1){ //执行语句1: }else if(条件表达式2){ //执行语句2; }... }else{ // 执行语句: } 注意: 1.一旦满足某个条件表达式,则进入其执行语句执行,执行完毕,跳出当前的条件判断结构,不会执行其以下的条件结构语句. 2.如果诸多个条件表达式之间为"互斥"关系,多个结构可以上下调换顺序 如果

Oracle基础笔记四

第四章 多表查询 1.笛卡尔集 笛卡尔集会在下面条件下产生: 省略连接条件 连接条件无效 所有表中的所有行互相连接 为了避免笛卡尔集, 可以在 WHERE 加入有效的连接条件. 2.Oracle 连接 使用连接在多个表中查询数据. select table1.column,table2.column from table1,table2 where table1.column = table2.column 在 WHERE 子句中写入连接条件. 在表中有相同列时,在列名之前加上表名前缀 2.1等

JavaSE基础笔记八

第六章 异常处理 1.体系结构 java.lang.Object |----java.lang.Throwable |----java.lang.Error:错误,java程序对此无能为力,不显式的处理 |----java.lang.Exception:异常,需进行处理 |----RuntimeException:运行时异常 |----1.ArrayIndexOutBoundsException 2. NullpointerException 3.ArithmeticException 4.Cl

JavaSE基础笔记十二

第十一章 多线程 理解程序.进程.线程的概念 程序可以理解为静态的代码. 进程可以理解为执行中的程序. 线程可以理解为进程的近一步细分,程序的一条执行路径. 2.如何创建java程序的进程(重点) 方式一:继承于Thread类 ①创建一个继承于Thread的子类 ②重写Thread类的run()方法,方法内实现此子线程要完成的功能 ③创建一个子类的对象 ④调用线程的start():启动此线程,调用相应的run()方法 ⑤一个线程只能够执行一次start 方式二:实现Runnable接口 ①创建一

JavaSE基础笔记九

第七章 集合 1.对象的存储:①数组(基本数据类型&引用数据类型) ②集合(引用数据类型) 数组存储数据的弊端:1.一旦创建,其长度不可变2.真实的数组存放的对象的个数是不可知 2.集合框架: Collection接口: |----List接口:存储有序的,可重复的元素 相当于"动态"数组 新增的方法:删除remove(int index)修改set(int index,Object obj)获取get(int index) 插入add(int index,Object obj