放在包下面的一个个并且是以.java结尾的文件就是类。前面有说道对想是Java程序的核心,而类描述了对象的属性和对象的行为,类是对象模板【类是对对象的抽象,对象是对类的实例化】 类按类型分为普通类,抽象类,接口,嵌套类等。按层级分又分为父类和子类
普通类

【访问修饰符】 class 类名 【implements/extends 类名】{ },其中有一种特殊的类object类,object类是所有类的父类,如果一个类没有用extends明确指出继承于某个类,那么它默认继承Object类。

抽象类

当一个类中没有足够的信息描述一个具体的书屋时,这个类就是抽象类。语法:【访问修饰符】 abstract class 类名{ }
特点:

1、抽象类不能实例化
2、抽象类可以拥有构造方法
3、抽象类可以声明实例变量,也可以声明静态变量,也可以存在普通方法和静态方法,变量在抽象类中可以初始化
4、抽象类中还可以有抽象方法 ,语法:【访问修饰符】 abstract 返回值类型 方法名(【参数】);
5、抽象类抽象方法由抽象类的子类来实现
6、如果一个类是抽象类,那么这个类的不一定有抽象方法,但如果一个类有抽象方法,那么这个类一定是抽象类
7、如果抽象类的子类没有把抽象类中的所有抽象方法实现,则子类也需要定义成抽象类,有子类的子类负责实现剩余的抽象方法。
8、普通方法在子类中与普通类一样,可以实现也可以不实现。

Java接口

接口就是对外提供了一系列功能的生命(也可以说接口中定义的方法只有方法的生命,没有方法体)语法:【访问修饰符】 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 类名{     
 }  }

class OuterClass {// codeclass NestedClass {// code}
}

分类:

  1. 静态嵌套类:用static修饰的嵌套类,一般称为嵌套类( Nested Classes )。
  2. 非静态嵌套类:非static声明,一般称为内部类( Inner Classes )。
class OuterClass {...static class StaticNestedClass {...}class InnerClass {...}
}
  • 嵌套类是它的外部类的成员,非静态嵌套类(内部类)可以访问外部类的其他成员,即使该成员是私有的。而静态嵌套类只能访问外部类的静态成员。
  • 嵌套类作为外部类的一个成员,可以被声明为:private,public,protected或者包范围(注意:外部类只能被声明为public或者包范围)。

访问修饰符

在定义类、属性、方法时都需要指定访问修饰符,以此来限定类、属性、方法的可访问范围。
Java中的访问修饰符有以下几个关键字:
public:公共。该类或非该类均可访问
private:私有的。只有在类的主体中才可以访问。只能修饰属性和方法,不能修饰类
protected:受保护。该类及子类的成员均可以访问,同一个包中的类也可以访问。只能修饰属性和方法,不能修饰类 默认:不使用修饰符。只有相同包中的类才可以访问

关键字

在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关键字来判断某个独享是否属于某各类。

什么是类?以及类的分类相关推荐

  1. 棋牌类游戏算法–牌分类_快速分类–三向和双枢轴

    棋牌类游戏算法–牌分类 毫无疑问,Quicksort被认为是本世纪最重要的算法之一,并且它是许多语言的事实上的系统排序,包括Java中的Arrays.sort . 那么,quicksort有何新功能? ...

  2. AI:人工智能领域算法思维导图集合之有监督学习/无监督学习/强化学习类型的具体算法简介(预测函数/优化目标/求解算法)、分类/回归/聚类/降维算法模型选择思路、11类机器学习算法详细分类之详细攻略

    AI:人工智能领域算法思维导图集合之有监督学习/无监督学习/强化学习类型的具体算法简介(预测函数/优化目标/求解算法).分类/回归/聚类/降维算法模型选择思路.11类机器学习算法详细分类(决策树/贝叶 ...

  3. OC语言类的深入和分类

    OC语言类的深入和分类 一.分类 (一)分类的基本知识  概念:Category  分类是OC特有的语言,依赖于类. 分类的作用:在不改变原来的类内容的基础上,为类增加一些方法. 添加一个分类: 文件 ...

  4. IPv4地址分类(A类 B类 C类 D类 E类)

    5类地址(A类 B类 C类 D类 E类) IPv4地址由四段组成,每个字段是一个字节,8位,最大值是255,, IPv4地址由两部分组成,即网络地址和主机地址.网络地址表示其属于互联网的哪一个网络,主 ...

  5. IPv4地址分类(A类 B类 C类 D类 E类)

    5类地址(A类 B类 C类 D类 E类) IPv4地址由四段组成,每个字段是一个字节,8位,最大值是255,, IPv4地址由两部分组成,即网络地址和主机地址.网络地址表示其属于互联网的哪一个网络,主 ...

  6. c++类与类的聚合(Aggregation)关系

    c++类与类的聚合关系 聚合(Aggregation)关系 具体表现 关联与聚合的区别 代码表现 聚合(Aggregation)关系 当对象A被加入到对象B中,成为对象B的组成部分时,对象B和对象A之 ...

  7. 类与类集合的基本使用

    设计人员类(姓名,性别,年龄,出生年月日),创建20位人员,年龄在(集合)(20-25)且随机产生 存放在集合中,最后将年龄>24的人员删除. 思路:定义类 Person 四个属性 创建一个Li ...

  8. 类与类关系的UML图与代码表现

    一 : 二 : 三 : 四 : 五 : 类与类之间的关系对于理解面向对象具有很重要的作用,存在以下关系: (1)泛化(Generalization) :狗与动物 (空箭头) (2)关联(Associa ...

  9. Java面向对象——基础1 类及类的成员

    目录 一.面向对象概要 1.1.面向过程和面向对象的对比 ​ 1.2面向对象的思想概述 1.3面向对象举例 二.类和对象 2.1 java类及类的成员 ​ ​ 2.1 类的语法格式 ​ 2.2 如何使 ...

  10. 专题:设计模式(精华篇)(Yanlz+单一职责+里氏替换+依赖倒置+接口隔离+迪米特+开放封闭+创建类+结构类+行为类+立钻哥哥)

    <专题:设计模式(精华篇)> 版本 作者 参与者 完成日期 备注 DesignPatterns_Classics_V01_1.0 严立钻 2018.07.31 ##<专题:设计模式( ...

最新文章

  1. golang计算单个协程占用内存
  2. winform combobox第12345行的数据_Python学习第109课--ndarray的创建和切分操作
  3. 使用 HTMLTestRunner.py
  4. JUC原子类-基本类型(二)
  5. 重写navigationController的push方法后,出现卡顿现象
  6. P3701 -「伪模板」主席树【网络流,最大流】
  7. linux内核五大部分,Linux内核的五大模块
  8. 拖动卡顿_教你4招,让你的ps永不卡顿
  9. java double的加法_java Double 进行加减乘除
  10. 汉语中的通用量词:个,块
  11. 主板检测卡c5_主板检测卡显示41这是哪坏了
  12. SAS硬盘与SATA硬盘有什么区别
  13. 程序员最不想让你知道的尴尬瞬间,看完我眼睛都绿了
  14. 3D语义场景图论文小记
  15. 12113个岗位争夺AI人才!中国成为AI岗位空缺最多的国家
  16. internet time
  17. 期末考试:编译原理——如何将控制语句翻译成四元式.
  18. android nes游戏模拟器源码支持wifi对战!
  19. 前端调用麦克风获取实时音频流和录音并上传至后台
  20. 智慧住建信息平台项目工程建设方案

热门文章

  1. 020:Django电商网站逻辑导图
  2. 澳洲网:澳高考生扎堆申请专业 热衷艺术及护理学位
  3. 从原理上搞懂编码——究竟什么是编码?什么是解码?什么是字节流?
  4. golang通过浏览器操作服务器中文件
  5. HDU 5745 La Vie en rose (DP||模拟) 2016杭电多校联合第二场
  6. 北京医保报销比例,范围
  7. java展示图片_Java中显示图片的方法
  8. 深度Linux声卡驱动安装,Deepin Linux 的声卡驱动有点小问题
  9. java 埋点_数据采集之js埋点
  10. 一个人九月份开始考北邮的经验