Java中名词的解释
在上一篇中说到了Java的四大特性,里面出现了很多名次,包括以后学习Java中也会出现很多常用到的名次,对初学者来说可能不知道是什么意思,或者是对这些刺耳的理解不是特别透彻,这里我就我自己的理解来解释下这些词的意思。
包
在Java中常说某个包下面的某个类。那么什么是包呢?在平时操作电脑时,我们常江某个文档,视频,音频等问价放在某个文件夹下,而这个文件夹在Java中就就叫做包。其实饱和文件夹在某种意义上来说是等同的,只是在Java中将其叫做包而不叫做文件夹。
类
放在包下面的一个个并且是以.java结尾的文件就是类。前面有说道对想是Java程序的核心,而类描述了对象的属性和对象的行为,类是对象模板【类是对对象的抽象,对象是对类的实例化】
类按类型分为普通类,抽象类,接口,嵌套类等。按层级分又分为父类和子类
普通类
【访问修饰符】 class 类名 【implements/extends 类名】{ },其中有一种特殊的类object类,object类是所有类的父类,如果一个类没有用extends明确指出继承于某个类,那么它默认继承Object类。
抽象类
当一个类中没有足够的信息描述一个具体的书屋时,这个类就是抽象类。
语法:【访问修饰符】 abstract class 类名{ }
特点:
1、抽象类不能实例化
2、抽象类可以拥有构造方法
3、抽象类可以声明实例变量,也可以声明静态变量,也可以存在普通方法和静态方法,变量在抽象类中可以初始化
4、抽象类中还可以有抽象方法 语法:【访问修饰符】 abstract 返回值类型 方法名 (【参数】);
5、抽象类抽象方法,有抽象类的子类来实现
6、如果一个类是抽象类,那么这个类的不一定有抽象方法,但如果一个类有抽象方法,那么这个类一定是抽象类
7、如果抽象类的子类没有吧抽象类中的所有抽象方法实现,则子类也需要定义成抽象类,有子类的子类负责实现剩余的抽象方法。
8、普通方法在子类中与普通类一样,可以实现也可以不实现
接口
就是对外提供了一系列功能的生命(也可以说接口中定义的方法只有方法的生命,没有方法体)
语法:【访问修饰符】 interface 接口名 {
//常量和方法的声明
}
public interface demo{
int i=0;
public void add() ;
}
特点:
1、接口中声明的方法没有方法体,只有方法的声明
2、接口中声明的成员属性都是静态的而且都是不可变的,因为接口中的成员属性默认都是public static final 来修饰的
3、接口没有构造方法,也不能被实例化
4、接口可以实现多继承,接口之间用逗号隔开
5、接口中的方法只能被public来修饰,就算没有明确的神明访问修饰符,默认也是public
通过implements来实现接口,语法:
【访问修饰符】 class 类名 implements 接口1,接口2{ }
嵌套类
声明在类的内部的类称之为嵌套类
语法:【访问修饰符】 class 类名{
【访问修饰符】【static】 class 类名{
}
}
分类:内部类:非静态嵌套类
静态嵌套类:用static修饰的嵌套类
内部类:内部类作为外部类的一个成员存在,与外部类的成员变量,成员方法并列
局部内部类:在方法体内声明的类,可以访问他所在方法中的final参数和final局部变量
静态嵌套类中可声明static成员或非静态成员变量,但只能访问外部类中的静态成员
方法
方法就是实现某个功能的代码块
方法的定义语法:
1、无返回值无参数的方法 【访问修饰符】 void 方法名(){ //方法的功能代码 }
说明:void就是表示该方法是无返回值得(也就是说调用完该方法不会返回一个结果)
2、无返回值有参数的方法 【访问修饰符】 void 方法名(数据类型 参数名,...){//方法的功能代码}
说明:方法中的参数又称为形参(形式意义的参数),调用该方法时传递的数据称为实参(实际的数据),传递的参数要和方法中的参数类型匹配
3、有返回值无参数的方法 【访问修饰符】 返回值类型 方法名称(){ return 返回值; }
说明:1、返回值类型有放回值来决定
2、在由返回值得方法的最后一句代码,一定是 return 返回值;。
4、有返回值有参数的方法 【访问修饰符】 返回值类型 方法名(参数列表){ return 返回值}
变量
定义:在Java中用来存储数据的元素,而且该元素所存放的数据时可以变化的,所以称为变量
注意:变量也是标识符的一部分
语法:1、变身名变赋值 数据类型 变量名称=变量值
2、先声明后赋值 数据类型 变量名称;变量名称=变量值;
定义变量的四个步骤:
1、声明数据类型其实就是为了根据数据类型开辟相应的内存空间
2、给变量命名,其实就会说为了能够把变量名和数据类型所对应的内存空间进行关联
3、给变量赋值,其实就是把数据存放到变量名所对应的内存空间
4、使用变量,其实就是把变量所对应的内存空间中的数据读取出来
常量
定义:在程序中他的值是不可变的,这样的冤死及时常量
语法:final 数据类型 常量名称=常量值;
建议:常量名称一般全部大写
标识符
标识符就是类名,方法名,参数名,包名等元素命名时,所写的字符序列就统称为标识符
标识符的命名规则:
1、有字幕,数字,下划线,和$组成
2、不能以数字开头
3、严格区分大小写
4、长度无限制
5、不能是Java的关键字和保留关键字
建议:见名知意
访问修饰符
在定义类、属性、方法时都需要指定访问修饰符,以此来限定类、属性、方法的可访问范围。Java中的访问修饰符有以下几个关键字:
public:公共。该类或非该类均可访问
private:私有的。只有在类的主体中才可以访问。只能修饰属性和方法,不能修饰类
protected:受保护。该类及子类的成员均可以访问,同一个包中的类也可以访问。只能修饰属性和方法,不能修饰类
默认:不使用修饰符。只有相同包中的类才可以访问
位置 | private | 默认 | protected | public |
同一个类 | 是 | 是 | 是 | 是 |
同一个包内的类 | 否 | 是 | 是 | 是 |
不同保内的类 | 否 | 否 | 是 | 是 |
不同包内不同类 | 否 | 否 | 否 | 是 |
关键字
在Java中被赋予了一定特殊意义和用途的单词
保留关键字也是关键字,只是目前没有任何的特殊意义和用途,保留使用。
this关键字
使用范围:this关键字只能使用在没有被static关键字修饰的方法中
作用:this关键字就会说对当类某个对象的引用(简单来说就是可以把this看做当前类的一个对象,哪个对象调用当前的方法,this关键字就指向该对象)
【当局部变量和成员变量完全一致时,以局部变量为主,即就近原则】
用法:
1、当方法中的参数名或变量名和成员变量完全一致时,可以通过this关键字来区分作用域
2、当this关键字以this(参数列表)的形式,出现在构造方法的第一句时,就表示当前构造方法调用了该类中其他的构造方法。
final关键字
1、final修饰的变量等同于常量,一旦赋值就无法更改(是指引用变量不能变,引用变量所指向的对象的内容还是可以改变的)
【final无论修饰全局变量还是局部变量,在定义时都必修要初始化才能使用】
2、final修饰方法中的参数称为最终参数,在方法体中同样也不能为最终参数重新赋值
3、final修饰类,该类不能被继承
4、final修饰的方法,不能被重写
staitic关键字
static可以修饰变量,方法,代码块
static修饰变量,也称为类变量,因为static关键字修饰的变量,方法,代码块都属于类,而不属于某个对象
【实例变量:没有被static修饰的成员属性或方法都属于某个对象,也叫做实例属性或实例方法,对象存在了,才会有实例变量开辟空间】
static修饰的属相、方法可以通过:类名.属性名或l类名.方法(参数)的形式来调用
特点:
1、静态方法中只能访问静态方法和静态的成员变量
2、在非静态方法中,既可以访问非静态的方法、属性,也可以访问静态属性和静态方法
3、在静态方法中不能使用this和supper关键字,因为this和supper表示对对象的引用,而static修饰的方法是属于类,所以在语法上存在一定的冲突
静态代码块:静态代码块只能出现在类的内部,任何方法的外部
静态代码块语法:static{ }
静态代码块作用:就是给静态的成员属性进行初始化
静态代码块的优先级比构造方法的优先级高
方法中参数的传递
在Java中无论是基本数据类型还是引用数据类型,在进行参数的传递时,都是采用的值传递(也就是传递的都是具体的数据)
基本数据类型在进行参数传递时,传递的值是副本,也就是说当把当前数据复制一份,然后再进行穿丝,所以目标方法中,对参数进行修改,这个值得本身是没有任何变化的
引用数据类型字进行参数的传递时,传递的是数据所在的内存地址,所以在目标方法中,对参数进行修改,这个值本身也会发生相应的变化
向上转型和向下转型
向上转型:把一个子类的对象,赋值给父类,就会把该对象当做父类对象来用
动态(延迟)绑定机制:在程序运行期间,会根据对象的真正的创建者来决定调用那个方法
发生动态绑定机制的条件:1、继承 2、重写 3、向上转型 4、用向上转型的对象调用被子类重写的方法
向下转型:把一个父类对象,复制给某个子类,需要加上强制转换符
向下转型一定是在向上转型的基础上类型的还原
向下转型调用子类中的没有重写的方法
可以通过instanceof关键字来判断某个独享是否属于某各类
最后在说明一点在上面的文章中所有语法中与【】括起来的部分是可以省略的部分。因为现在也是边整理边写,可能会比较乱,有的内容会讲不到,这些内容会在以后遇到的过程中详细讲解。
Java中名词的解释的更多相关文章
- Java中“指针”的解释以及对“引用”的理解
Java中"指针"的解释以及对"引用"的理解 初学Java面对对象编程,对于一些概念还真的有点难以理解,主要是因为不由自主的联系到以前学过的C语言知识,时不时的 ...
- java中的容器解释
解释一:容器(Container)Spring 提供容器功能,容器可以管理对象的生命周期.对象与对象之间的依赖关系,您可以使用一个配置文件(通常是XML),在上面定义好对象的名称.如何产生(Proto ...
- Java中serialVersionUID的解释及两种生成方式的区别(转载)
转载自:http://blog.csdn.net/xuanxiaochuan/article/details/25052057 serialVersionUID作用: 序列化时为了保持版 ...
- JAVA中SERIALVERSIONUID的解释
serialVersionUID作用: 序列化时为了保持版本的兼容性,即在版本升级时反序列化仍保持对象的唯一性.有两种生成方式: 一个是默认的1L,比如:private st ...
- java中基本输入输出流的解释(flush方法的使用)
转自:http://fsz521job.itpub.net/post/5606/34827 网络程序的很大一部分是简单的输入输出,即从一个系统向另一个系统移动字节.字节就是字节,在很大程度上,读服务器 ...
- Java中JNI的使用详解第二篇:JNIEnv类型和jobject类型的解释
上一篇说的是一个简单的应用,说明JNI是怎么工作的,这一篇主要来说一下,那个本地方法sayHello的参数的说明,以及其中方法的使用 首先来看一下C++中的sayHello方法的实现: JNIEXPO ...
- Java进阶(十五)Java中设置session的详细解释
Java中设置session的详细解释 简单通俗的讲session就是象一个临时的容器,用来存放临时的东西.从你登陆开始就保存在session里,当然你可以自己设置它的有效时间和页面,举个简单的例子: ...
- Java中的final具体解释以及用途实战
浅析Java中的finalkeyword 谈到finalkeyword,想必非常多人都不陌生.在使用匿名内部类的时候可能会经经常使用到finalkeyword. 另外.Java中的String类就是一 ...
- 关于高淇JAVA中SORM总结学习笔记详细个人解释
代码来源于高淇JAVA教学视频 谢谢高淇老师的教学. 因为自己在学习的过程中发现了很多困难点,总结下希望对自己接下来学框架提升.给像我一样得初学者方便. SORM框架是一个简单的ORM,关系对象映射, ...
随机推荐
- hadoop1.0.4运行程序出现“Java heap Space”错误
根据虾皮博客中教程,成功搭建了一个12台电脑的Hadoop云平台,而且成功运行了软件自带的wordcount程序,处理10M数据. 但是当程序处理40M时候,却出错了.出错提示“Java Heap S ...
- logstash5.5.0同步sql server数据
注意:jdbc.conf和jdbc.sql文件编码都为ANSI jdbc.conf内容如下: input { stdin { } jdbc { jdbc_connection_string => ...
- Elasticsearch基础知识
ElasticSearch是一个基于Lucene的搜索服务器.它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口Elasticsearch是用Java开发的,并作为Apache ...
- Flink学习笔记-新一代Flink计算引擎
说明:本文为<Flink大数据项目实战>学习笔记,想通过视频系统学习Flink这个最火爆的大数据计算框架的同学,推荐学习课程: Flink大数据项目实战:http://t.cn/EJtKh ...
- linux C API连接并查询mysql5.7.9
开发环境: ubuntu16.04 mysql5.7.9 原生C API VIM 配置远程连接 配置mysql允许远程连接的方法默认情况下,mysql只允许本地登录,如果要开启远程连接,则需要修改/e ...
- Swift中的Weak Strong Dance
亲爱的博客园的关注着博主文章的朋友们告诉你们一个很不幸的消息哦, 这篇文章将会是博主在博客园发表的最后一篇文章咯, 因为之后的文章博主只会发布到这里哦 http://daiweilai.github. ...
- Carte作为Windows服务
有一些用例将Carte作为Windows服务运行: 当使用命令窗口运行Carte实例时,任何人都会错误地关闭实例并且Carte将关闭. Carte.bat命令窗口与调用批处理文件的用户会话相关联,需要 ...
- [原创]SSH 隧道转发
目录 简介 本地SSH隧道 远程SSH隧道 FAQ 免密码登陆 自动重连 简介 建立ssh隧道常用于, 通过一台公网的主机或者是大家都可以访问的主机做跳转机,来访问内部或者外部不能直接访问的机器. 项 ...
- 简单工厂模式&策略模式-简介与区别
不得不说,这两种模式真的很像. 相似点:都用到了面向对象的继承.多态.抽象,都拥有相似的结构. 不同点:工厂模式仅提供具体的实例对象,怎么使用这个对象是client的自由,策略模式client可以通过 ...
- 等价类计数问题(Polya定理和burnside引理)
零.约定: (置换等名词会在前置知识中有解释) \(1.\)在本文中,题目要求的染色方案等统称为"元素". \(2.\)两个元素严格相等我们记做"\(=\)", ...