Java类和对象(都是重点,必须理清楚)
一、类和对象
1.什么是类?什么是对象?
1)现实世界是由很多对象组成的,基于对象抽出了类
2)对象:真实存在的单个的个体,类:类型/类别,一类个体
3)类中可以包含:
3.1)所有对象所共有的特征/属性(静)----变量
3.2)所有对象所共有的行为(动)---------方法
4)一个类可以创建多个对象
同一个类的多个对象,结构相同,数据不同
5)类是对象的模板,对象是类的具体的实例
2.引用类型之间画等号:指向了同一个对象
1)对其中一个引用的修改会影响另一个引用
2)基本类型之间画等号:赋值,对其中一个值的修改不会影响另一个值
3.null:空,没有指向任何对象,不能对null做任何操作,若操作则会报NullPointerException空指针异常。
二、成员变量
成员变量:
1.类中,方法外
2.new时存在堆中,对象被回收时消失
3.成员变量可以设置初始值也可以不设置,如果不设置会有默认值。
实例成员变量:
1)属于对象的,存在堆中
2)有几个对象就有几份实例变量
3)必须通过对象名.来访问
静态成员变量:
1)属于类的,存在方法区中
2)只有一份
3)常常通过类名.来访问
局部变量:
1.方法中
2.调方法时存在栈中,方法调用结束时与栈桢一并消失
3.没有默认值
三、成员方法
1.方法的重载(Overload):
1)同一个类中,方法名称相同,参数列表不同
2)编译器在编译时自动根据方法的签名来绑定调用不同的方法。
2.方法的重写(Override):
1)发生在父子类中,方法名相同,参数列表相同,方法体不同
2)重写方法被调用时,看对象的类型
3.重写与重载的区别:
1)重写:父子类中,方法名相同,参数列表相同,方法体不同,遵循"运行期"绑定,根据对象的类型调用方法。重写遵循“两同两小一大”原则:方法名相同,参数列表相同;子类抛出的异常小于或等于父类的,子类的返回值类型小于或等于父类的(基本类型和void时,必须相同);子类的访问权限大于或等于父类的。
2)重载:一个类中,方法名相同,参数列表不同,方法体不同
遵循"编译期"绑定,根据引用的类型绑定方法
4.在成员方法中定义的变量为局部变量;如果方法中含有与成员变量同名的局部变量,则方法中对这个变量的访问以局部变量进行。在相互不嵌套的作用域中可以同时声明两个名称和类型相同的局部变量。
四、构造器
构造方法(构造器、构建器、构造函数):
1)常常用于给成员变量赋初值
2)与类同名,没有返回类型
3)在创建(new)对象时被自动调用
4)若自己不写构造方法,则编译器默认提供无参构造,若自己写了构造,则不再默认提供
5)构造方法可以重载
五、package:
1)作用:避免类的命名冲突
2)包名可以有层次结构
3)建议:包名所有字母都小写
4)类的完全限定名: 包名.类名
import:
1)作用:声明类/引入类
2)同包中的类可以直接访问
不同包中的类想访问:
2.1)先import声明类再访问类(建议)
2.2)类的全称-----太繁琐(不建议)
六、权限修饰符
1)public:公开的,任何类
2)private:私有的,本类
3)protected:受保护的,本类、子类、同包类
4)默认的:什么也不写,本类、同包类
类的访问修饰:public和默认的
类成员的访问修饰:如上4种都可以
Java中的权限修饰符有四种,控制着对类和类的成员变量以及成员方法的访问。类的权限设定会约束类成员的权限设定。
七、this和super
this:指代当前对象,哪个对象调指的就是哪个对象,方法中访问成员变量之前默认都有个this.
this的用法:
1)this.成员变量名----------访问成员变量
2)this.方法名()------------调用方法
3)this()-------------------调用构造方法
this关键字就是本类的一个引用。this可以调用类成员和构造器,也可作为方法的返回值。在局部变量覆盖成员变量时,使用this来明确引用的是局部变量还是类成员。使用this调用构造器必须放在构造器的第一句。
super:指代当前对象的父类对象
用法:
super.成员变量名-------访问父类的成员变量
super.方法名()---------调用父类的方法
super()----------------调用父类的构造方法
八、static和final
Static:
1)静态变量:
1.1)由static修饰
1.2)属于类的,存在方法区中,只有一份
1.3)常常通过类名.来访问
1.4)何时用:所有对象的数据都一样时使用
2)静态方法:
2.1)由static修饰
2.2)属于类的,存在方法区中,只有一份
2.3)常常通过类名.来访问
2.4)没有隐式的this传递
静态方法中不能直接访问实例成员
2.5)何时用:方法的操作仅与参数相关而与对象无关时使用
3)静态块:
3.1)由static修饰
3.2)属于类的,类被加载期间自动执行
类只被加载一次,所以静态块也只执行一次
3.3)何时用:常常用于加载/初始化静态资源(图片、音频、视频...)
4)静态内部类
只能调用外部类的静态成员.
final:不能变
1)修饰变量:变量不能被改变
2)修饰方法:方法不能被重写
3)修饰类: 类不能被继承
static final常量:
1)必须声明同时初始化
2)通过类名点来访问,不能改变
3)建议:常量名所有字母都大写
4)在编译时被直接替换为具体的值,效率高
九、面向对象三大特征:
1.封装:
1)类:封装的是对象的属性和行为
2)方法:封装的是具体的逻辑功能实现
3)访问控制修饰符:封装的是访问的权限
2.继承:
1)作用:避免代码重复,有利于代码的重用
2)父类:所有子类所共有的属性和行为
子类:子类所特有的属性和行为
3)子继承(extends)父后,子具有:父+子
4)传递性、单一继承多接口实现
3.多态:
1)意义:
1.1)同一类型的引用指向不同的对象时,有不同的实现 -------行为的多态
1.2)同一对象被造型为不同的类型时,有不同的功能-------对象的多态
2)向上造型:
2.1)父类型的引用指向子类的对象
2.2)能造型成的类型有:父类型、实现的接口
2.3)能点出来什么,看引用的类型
3)强制类型转换,成功的条件有两个:
3.1)引用所指向的对象,就是该类型
3.2)引用所指向的对象,实现了该接口
4)建议强转之前通过instanceof来判断引用是否是某种类型
instanceof返回boolean结果
强转成功的条件就是它为true的条件
5)多态的表现形式:
重写+重载
<!--EndFragment-->
相关推荐
Java编程语言作为软件开发领域的主流语言之一,其面试题库涵盖了广泛的领域,包括基础语法、面向对象编程、集合框架、多线程、网络编程、异常处理、IO流、设计模式等。以下是一些核心知识点的详细说明: 1. **基础...
### JAVA面试题详解 #### 1. 异常处理机制的简单原理和应用 异常处理是Java编程语言中的一项重要特性,它用于检测程序运行时出现的问题并采取适当的措施。当程序违反了Java的语义规则时,Java虚拟机会抛出一个异常...
│ Java面试题20.jsp和Servlet的相同点和不同点?.mp4 │ Java面试题21.内置对象和四大作用域和页面传值.mp4 │ Java面试题22.Session和Cookie的区别.mp4 │ Java面试题23.mvc模式和mvc各部分的实现.mp4 │ Java面试...
这份"【面试必备】JAVA 最常见面试题全解析 附 PDF"文档,正是为准备Java面试的开发者量身定制的资源,涵盖了Java的基础到高级知识点,旨在帮助你全面理解和掌握Java技术。 一、基础篇 1. Java语法:包括变量、数据...
【Java程序员必备——比较全的Java面试题】 Java编程语言作为全球最受欢迎的开发语言之一,其面试题库广泛且深入,涵盖了基础语法、面向对象、集合框架、多线程、网络编程、I/O流、数据库操作、设计模式等多个方面...
Java面试宝典是Java程序员求职面试的重要参考资料,它涵盖了Java编程语言的核心概念、高级特性、设计模式、并发处理、框架应用、数据库交互等多个方面。以下将详细解析这些关键知识点: 1. **Java基础**:面试中,...
其中的"Java面试必备208题.pdf"涵盖了Java语言的各个方面,包括基础概念、面向对象、集合框架、多线程、IO流、网络编程、异常处理、JVM内存模型以及高级特性和设计模式等。 首先,基础概念是面试的起点,这包括Java...
为了帮助开发者们在面试中脱颖而出,市面上出现了许多专注于Java面试的指南书籍,其中《Java高分面试指南》以其全面的内容和深入浅出的讲解方式,成为了众多求职者的青睐之作。在这份指南中,不仅覆盖了Java的基础...
本文将基于“初级Java面试题集锦(面试必备)”这一主题进行深入解析,帮助求职者更好地理解和掌握Java的基础知识及面试中常见的技术点。 #### 1. Java基本概念 Java是一种广泛使用的面向对象的编程语言,它支持跨...
面试中,Java基础部分会涵盖这些知识点,例如类、对象、接口、包的概念,以及控制流、异常处理、集合框架等。Redis是一种内存数据结构存储系统,常用于缓存和消息队列,面试中可能会讨论其数据类型、持久化和主从...
"最新Java面试必备技巧资料"这个压缩包正是为了帮助Java开发者准备面试而精心整理的资源集合。 Java面试的准备通常涵盖以下几个核心知识点: 1. **基础语法**:这是所有Java面试的基础,包括变量、数据类型、...
Java 面试题是 Java 开发人员面试的必备知识,涵盖了 Java 基础知识、Java 框架、Java 集合框架、Java 多线程、Java 网络编程等方面的知识点。在本文中,我们将对 Java 面试题进行总结和分析,帮助读者快速掌握 Java...
以下是对"Java 133道面试题(包括答案 JAVA面试必备)"中可能包含的一些关键知识点的详细解析: 1. **基础语法**: - **数据类型**:了解基本数据类型(如int、char、boolean)和引用数据类型(如类、接口、数组)...
本资源是关于Java面试题的集合,涵盖了Java核心技术部分的面试题,包括Java基本语法、面向对象、Java常用API、Java集合框架、注解、泛型、输入/输出、多线程、网络通信、反射、内存管理等相关内容。 1. 面向对象的...
### JAVA面试必备宝典 本宝典为准备JAVA面试的朋友们提供了一系列重要的知识点与技能,主要涵盖JSP、Web开发等内容。以下将详细介绍这些关键概念和技术。 #### JSP(JavaServer Pages) JavaServer Pages(简称...
总结而言,《Java面试题大全.pdf》不仅覆盖了Java的基础知识点,还包括了面向对象的核心概念、常用的数据结构、以及重要的编程细节,对想要在Java领域深入发展的求职者来说,这份资料无疑是一份宝贵的学习和参考资源...
下面将根据“Java面试突击,面试必备”的主题,详细阐述相关知识点。 1. **Java基础** - 类与对象:掌握面向对象的基本概念,如封装、继承、多态。 - 内存管理:理解JVM内存模型,包括堆、栈、方法区、本地方法栈...
这份"JAVA核心知识点整理、面试必备"资料涵盖了Java技术栈的多个重要方面,对于准备面试或提升技术能力非常有帮助。以下是其中涉及的主要知识点的详细解析: 1. **Java多线程并发**: 多线程是Java的重要特性,它...
以下是一些基于“java面试成功必备”这一主题的重要知识点: 1. **Java基础**: - **语法**:包括变量、数据类型、运算符、流程控制(if、switch、for、while)、数组和集合等。 - **面向对象**:封装、继承、...