Java基础针对自己薄弱环节总结03

一、说说面向对象思想

1、什么是面向对象

1)面向对象是以对象为基础的,完成各种操作,强调的是对象、结果。

2)面向过程是以函数为基础的,完成各种操作,强调的是过程。

3)面向对象是基于面向过程的。

2、面向对象的思想特点

1)一种更符合人们思考习惯的思想

2)把复杂的问题简单化

3)我们从执行者变成了指挥者

举例:自己买电脑vs让朋友帮忙买电脑

(面向过程) (面向对象)

二、类与对象

1、类是相关属性和行为的集合,是抽象的概念

2、对象是某种事物的具体存在,是具体的表象形式

举例:学生 (类)

小明 (对象)

三、成员变量和局部变量的区别

1、定义位置

成员变量:类中方法外

局部变量:类中方法内,或方法上的形参

2、初始化区别

成员变量:有默认初始化值

局部变量:无

3、存储位置:

成员变量:堆中 随对象的存在而存在

局部变量:栈中 随方法的存在而存在

四、封装的概述

1、概念
隐藏对象的属性和实现细节,仅对外提供公共的访问方式(将属性私有化,并提供公有的访问方法)
2、注意

private仅仅是封装的一种体现,因为类,函数等其实也是一个封装的体现

3、为什么要写getter/setter方法(掌握)

从思想上来说,因为属性私有化,只能在本类使用,其他类要想使用就需要提供get方法和set方法

从需求上来讲,set和get方法 不一定必须出现,他俩是相互独立的

而且set方法和get方法的名字可以随便起,只不过形成一个规范了,大家通过方法给私有属性赋值的时候,形成一个默认的规则,就是给属性赋值的方法以set开头,获取属性值的方法以get开头

五、实例变量 和类变量

 类变量也叫静态变量,也就是在变量前加了static 的变量
 实例变量也叫对象变量,即没加 static 的变量

 区别在于:
 类变量是所有对象共有,其中一个对象将它值改变,其他对象得到的就是改变后的结果;而实例变量则属对象私有,某一个对象将其值改变,不影响其他对象

六、this关键字(掌握)

1、概念(理解或了解)

this代表其所在方法所属对象的引用,哪个对象调用方法,方法内部就有一个隐含的this代表这个对象(谁调用,this就代表谁)(重点)

简单点说:谁调用,this代表谁

2、应用场景(作用掌握)

用于解决局部变量隐藏成员变量的问题

简单点说:通过this关键字可以直接调用成员变量

七、代码块(掌握)

1、概述

由{}扩起来的代码称之为代码块,类或者方法也可认为是代码块,但是一般不这么说,我们平时所说的代码块指的是孤零零的{}

2、代码块作用

局部代码块作用

让变量尽可能早的从内存中消失,提高效率

构造代码块作用是

把所有构造方法中的共同的内容定义在构造代码块中,提高代码复用性,代码块先于构造方法执行,但是一般不用,最终目的初始化成员变量

工作中用的很少,主要应对面试

八、对象初始化过程(掌握)

Person p = new Person();

A:把 Person.class文件加载到内存 (类加载器 )

B:在栈内存开辟一个变量空间,给 p使用

C: new Person()就会在对内存中开辟空间

D:方法进方法区,有类名做标记,并且,同时成员变量进堆内存并给出了默认初始化值

E:对成员变量进行显示初始化 (是因为定义成员变量的时候给赋值了 public int age = 34;)

F:如果有构造代码块,可以在构造代码块中对成员变量赋值

G:构造函数初始化

H:到此为止,对象初始化完毕

I :把堆内存对象的首地址赋值给栈内存的 p变量

九、static关键字概述

1、概述

1)static 可以修饰成员变量和成员方法

2)被static修饰的成员有一个最大的特点,就是可以被该类下所有的对象共享

2、什么时候用

多个对象共享某一数据的时候,我们就把这个数据用static修饰.举例:小鸡吃食

3、特点(掌握)

1)被static修饰的内容随着类的加载而加载,优先于对象存在

2)可以直接通过类名调用

3)被该类下所有对象共享

4、注意事项

1)在静态方法中是没有this关键字,因为静态是随着类的加载而加载。而this是对象创建才存在的

2)静态方法只能访问静态成员变量和静态成员方法 一句话 静态只能访问静态

3)静态内容可以通过对象调用,也可以通过类名调用。推荐使用类名调用

十、继承

1、什么是继承

1)多个类中存在相同的属性和行为时,将这些内容抽取到单个类中,那么多个类无需再定义属性和行为,只需继承即可。

2)多个类成为子类或派生类,单个类称为父类或超类

3)通过extends关键字让他们产生关系

2、继承的好处及特点

好处:

1)提高代码的复用性

2)让类与类产生关系,是多态的前提

特点:

1)Java中只支持单继承,不支持多继承

2)Java中支持多层继承

3、什么时候使用继承

B类是A类的一种就用继承关系

十一、this和super的比较

1、概念上的区别

Super代表的是父类内存空间的标示

this代表所在方法所属对象的引用

2、什么时候使用

在调用父类构造方法时使用super

当子父类中出现同名成员时用super区分

十二、重写override和重载overload

1、重写override概念(掌握)

在子父类关系中,子类中存在和父类方法声明完全一样的方法叫做方法重写

2、重载overload概念

一个子类或者子父类关系中存在多个同名方法,并且参数列表不同的方法叫做重载

3、重写的作用

升级改造父类的方法

十三、子父类间成员方法注意事项(掌握)

1、父类中私有方法不能被覆盖 (因为私有的不能被继承,所以不算重写)

2、子类方法访问权限大于父类方法访问权限 (父类如果是public,子类只能是public)

十四、子父类间构造方法特点和注意事项(掌握)

1、子类中构造方法的特点(理解)

子类默认构造方法都访问了父类的无参构造方法,子类构造方法中都有默认语句super(),并且默认只能是无参的super()语句

因为子类会具备父类中非私有数据,这个初始化靠父类完成,所以先调用父类构造方法来初始化父类中的数据

2、如果父类无无参构造,子类构造如何访问父类构造(掌握)

1)通过super(参数)调用父类带参构造方法

2)通过this(..)调用本类构造方法 //知道就行,一般不用, 但是需要注意的是如果一个类中所有的构造方法第一句都调用this(..),这样是错误

3、构造方法执行完后会创建该类的对象吗?

不一定,子类的构造方法第一行调用父类的构造方法时,不会创建对象

4、注意

构造方法中的this()和super()语句必须放第一行,并且只能取其一

十五、子父类间静态代码块,代码块,构造方法执行顺序(掌握)

1、优先级

静态代码块 -> 构造代码块 ->构造方法

2、执行顺序

父类静态代码块->子类静态代码块->父类构造代码块->父类构造方法->子类构造代码块->子类构造方法

3、静态代码块作用

初始化静态成员变量

4、构造代码块作用

1、初始化非静态成员变量

2、把所有构造方法中的共性内容抽取出来,提高了代码的复用性

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-31 11:40:17

Java基础针对自己薄弱环节总结03的相关文章

Java基础针对自己薄弱环节总结05(API、集合)

一.API中的一些方法 ** Arrays工具类 ** 1. 概念 针对数组操作的工具类 2. 成员方法 a) toString():public static String toString(数据类型[] 变量名)-–把数组变成字符串 b) sort():public static void sort(数据类型[] 变量名)--对数组进行排序 c) public static int binarySearch(int[] arr,int value)--二分查找 System类 1. 系统类,

JAVA基础针对自己薄弱环节总结01(循环之前的知识)

java中的标识符 组成:数字.字母.下划线.美元$符号组成. 规则:不能由数字开头. 类名:每一个单词的首字母大写 包名:所有小写 变量名.方法名:第一个单词首字母小写.后面首字母大写 常量:所有大写用下划线连接 凝视 单行凝视:// 多行凝视:/--/ (不能嵌套) 文档凝视:/*-../(能够被javadoc命令解析成Html文档(说明书)) 变量概述 格式一: 数据类型 变量名=初始化值: 格式二: 数据类型 变量名: 变量名=初始化值. 变量在使用前必须初始化. java中的数据类型

JAVA基础针对自己薄弱环节总结02(循环)

循环 A:水仙花. classShuiXianHua { public static void main(String[] args) { for(int i=101;i<1000;i++) { int ge=i%10; int shi=i/10%10; int bai=i/100%10; if(ge*ge*ge+shi*shi*shi+bai*bai*bai==i) System.out.print(i+""); } } } 结果: B:统计叠多少次,能叠成珠穆朗玛峰的高度.

JAVA基础针对自己薄弱环节总结01

java中的标识符 组成:数字.字母.下划线.美元$符号组成. 规则:不能由数字开头. 类名:每个单词的首字母大写 包名:全部小写 变量名.方法名:第一个单词首字母小写,后面首字母大写 常量:全部大写用下划线连接 注释 单行注释:// 多行注释:/--/ (不能嵌套) 文档注释:/*-../(可以被javadoc命令解析成Html文档(说明书)) 变量概述 格式一: 数据类型 变量名=初始化值: 格式二: 数据类型 变量名: 变量名=初始化值: 变量在使用前必须初始化. java中的数据类型 整

Java基础针对自己薄弱环节总结04(面向对象多态)

一.多态的概念和前提 1.概念-什么是多态 对象在不同时刻表现出的不同的状态. 2.前提 A:要有继承关系或实现关系 B:要有方法重写或实现 C:要有父类引用指向子类对象,或父类接口指向子类对象        3.举例:        狗是动物 二.多态的成员特点 1.成员变量  编译看左边,运行看左边 Fu f=new Zi(); f.name;//调用的是父类的name 2.非静态成员方法 Fu f=new Zi(); f.show();//调用的是子类的show 3.产生以上的原因 方法有

【Java基础面试题】【03】

81.JDBC中如何进行事务处理? 答:Connection提供了事务处理的方法,通过调用setAutoCommit(false)可以设置手动提交事务:当事务完成后用commit()显式提交事务:如果在事务处理过程中发生异常则通过rollback()进行事务回滚.除此之外,从JDBC 3.0中还引入了Savepoint(保存点)的概念,允许通过代码设置保存点并让事务回滚到指定的保存点. 82.JDBC能否处理Blob和Clob? 答: Blob是指二进制大对象(Binary Large Obje

Java基础03 构造器与方法重载(转载)

显式初始化要求我们在写程序时就确定初始值,这有时很不方便.我们可以使用构造器(constructor)来初始化对象.构造器可以初始化数据成员,还可以规定特定的操作.这些操作会在创建对象时自动执行. 定义构造器 构造器(constructor)是一个方法.像普通方法一样,我们在类中定义构造器.构造器有如下基本特征: 构造器的名字和类的名字相同 构造器没有返回值 我们定义Human类的构造器: public class Test{    public static void main(String[

java基础学习03(java基础程序设计)

java基础程序设计 一.完成的目标 1. 掌握java中的数据类型划分 2. 8种基本数据类型的使用及数据类型转换 3. 位运算.运算符.表达式 4. 判断.循环语句的使用 5. break和continue的区别 二.数据类型划分 java的数据类型可分为基本数据类型与引用数据类型.基本数据类型包括了最基本的boolean.char.byte.short.int.long.float.double;引用数据类型是以一种特殊的方式指向变量的实体,这种机制类似于C/C++. 三.基本数据类型 j

Java基础总结(内部版)【转】

一.JVM 1.内存模型 1.1.1 内存分几部分 (1)程序计数器 可看作当前线程所执行的字节码的**行号指示器**.字节码解释器工作时就是通过改变这个计数器的值来选取下一条需要执行的字节码指令,分支.循环.跳转.异常处理.线程恢复等基础功能都需要依赖这个计数器来完成. 在线程创建时创建.执行本地方法时,PC的值为null.为了线程切换后能恢复到正确的执行位置,每条线程都需要有一个独立的程序计数器,线程私有. (2)Java虚拟机栈 线程私有,生命周期同线程.**每个方法在执行同时,创建栈帧*