1、包

  三级命名:公司的尾缀(com).公司名字(baidu).业务(Sale)

  java.lang:默认包:String、Math,Object,System

  java.util:工具包

  java.io:输入输出包

  java.net:网络开发包

  java.awt:图形界面开发包

  java.swing:也是图形界面开发包

2、访问控制

  private:私有的:只能在自己的类中使用

  default: 默认的:同包中可以使用。当子类继承父类,实例化子类后,跨包不可以使用。

  protected:保护的:同包中可以使用,不同包时,子类继承父类,实例化子类后,挎包可以使用。

  public:公有的:可以在任何包类中使用

3、静态关键字static

 static关键字用来修饰变量、方法、内部类称这些变量、方法和内部类为静态变量、静态方法、静态内部类,放在静态内存区;

  使用动态的时候,这些变量方法在对象实例化后,随时用随时创建,用完消失,所以为动态的。

  静态的随类产生,随类消亡,会占内存,对象不调用的时候也不消失。

  构造器不能使用static修饰,因为构造器参与new实例化动态创建,所以动静矛盾。

  什么时候用静态:当实例化好多对象时候,确认其中一个属性和方法其值不会改变(方法就是参数返回值一致),就可以将其定义为静态的

  用static声明的成员变量都将在静态内存区存储,不受实例化影响,随类而生随类而死,可以使用类.的形式调用。如果通过对象调用,其底层其实也是依据类.的形式调用;static的属性能够存储值,你不改变它,它就不变。

4、静态初始化块

   

public class C extends C0{
private static int age;
static{
System.out.println(1);
}
{
System.out.println(2);
}
C(){
System.out.println(3);
}
public static void main(String[] args) {
System.out.println(new C());
}
}
class C0{
static {
System.out.println(4);
}
{
System.out.println(5);
}
C0(){
System.out.println(6);
}
}

输出4 1 5 6 2 3

  父类中静态代码块>子类中静态代码块>父类动态代码块>父类构造器>子类静态代码块>子类构造器>子类方法

5、final关键字

  final——用于类、方法、变量前

  final类不能被继承:常用的fanal太监类:String、Math;

  final方法不能被重写覆盖;

  final属性不能被更改。

  

  常量声明:public static final double PI(常量用大写)= 3.1415926;

6、abstact抽象:

  implements:实现 宿主

  A、有抽象方法的成员类一定是抽象类

  B、子类继承了抽象类,该子类要么实现抽象方法,要么自己本身是抽象类。

  C、抽象类不能实例化。

7、interface接口

  java中为单根继承,灵活度不够。而类和接口可以多实现,接口之间可以多继承,接口不可以继承类!

  接口中默认为public,而不是default

类可以先继承父类,再实现接口

八、多态(polymorphism)——前提是继承

  java的引用变量有两个类型:一个是编译时的类型,一个是运行时的类型

 编译时的类型由声明该变量时使用的类型决定,运行时的类型由实际赋给该变量的对象决定,如果编译时类型和运行时类型不一致就出现多态。

  方法和变量的使用:子类重写父类的方法或同名的属性,按照子类走;子类没有的方法属性按父类走;子类新创建的属性和方法,无法使用;非要使用就是用强转(A是儿子,A0是父亲,plan()是新方法,((A)a1).plan())。

用法:  

1、虚方法:用引用变量类型对象的栈来限制该对象可以调用的方法;

2、形参多态:在形参位置只写父类类型加变量,在调用时,在形参列表中实例化子类对象即可。

3、返回值多态:可用来实例化对象,根据子类的对象类型,来通过父类类型,创建子类对象

九、instanceof运算符

  可以使用该运算符得到对象的类型。

  判断一个对象时候是一个类的实现对象。

  判断一个对象时候实现了一个接口。

  a instanceof A;

9、包、访问控制、import、static、static代码块、final、抽象类、接口、instanceof、多态的更多相关文章

  1. 5、static、final、匿名对象、内部类、包、修饰符、代码块

    final关键字 final关键字概念 * A: 概述 继承的出现提高了代码的复用性,并方便开发.但随之也有问题,有些类在描述完之后,不想被继承, 或者有些类中的部分方法功能是固定的,不想让子类重写. ...

  2. Java之static静态代码块

    Java之static静态代码块 构造代码块 使用{}包裹的代码区域,这里的代码区域特指位于class{}下面的而不是存在于其他type method(){}这类函数下面的代码区域 public cl ...

  3. java 中的静态(static)代码块

    类字面常量 final 静态域不会触发类的初始化操作 非 final static 静态域(以及构造器其实是一种隐式的静态方法) Class.forName():会自动的初始化: 使用 .class来 ...

  4. static{}静态代码块与{}普通代码块之间的区别

    先看一个例子: //class A package com.my.test; class A { static { System.out.println("A1:父类静态代码区域" ...

  5. Java static 静态代码块、代码块

    简述 static{} 静态代码块,加载类之前执行 {} 代码块,每次new的时候都会被执行 示例 类: public class Student { int age; String name; bo ...

  6. Java-静态关键字Static&静态代码块

    静态成员变量:(static修饰变量) 如果一个成员变量使用了static关键字,那么这个变量不再属于对象自己,而是属于所在的类.多个对象共享同一份数据. 静态方法:(static修饰方法) 一旦使用 ...

  7. -1-2 java 面向对象基本概念 封装继承多态 变量 this super static 静态变量 匿名对象 值传递 初始化过程 代码块 final关键字 抽象类 接口 区别 多态 包 访问权限 内部类 匿名内部类 == 与 equal

    java是纯粹的面向对象的语言 也就是万事万物皆是对象 程序是对象的集合,他们通过发送消息来相互通信 每个对象都有自己的由其他的对象所构建的存储,也就是对象可以包含对象 每个对象都有它的类型  也就是 ...

  8. [Day13]static、final、匿名对象、内部类、包、修饰符、代码块

    1.final-最终 (1)final的特点 final修饰类不可以被继承,但是可以继承其他类 final修饰的方法不可以被覆盖,但父类中没有final修饰方法,子类覆盖后可以加final final ...

  9. 13_Java面向对象_第13天(static、final、匿名对象、内部类、包、修饰符、代码块)_讲义

    今日内容介绍 1.final 关键字 2.static 关键字 3.匿名对象 4.内部类 5.包的声明与访问 6.访问修饰符 7.代码块 01final关键字概念 A: 概述 继承的出现提高了代码的复 ...

  10. Java面向对象(static、final、匿名对象、内部类、包、修饰符、代码块)

    面向对象 今日内容介绍 u final u static u 匿名对象 u 内部类 u 包的声明与访问 u 四种访问修饰符 u 代码块 第1章 final关键字 1.1 final的概念 继承的出现提 ...

随机推荐

  1. iText、poi操作word2007(读取,生成)

    关于生成word文件以及插入文字.表格.图片等功能,我使用了poi和itext,因为poi插入图片的jar包我在网上查并不是太完全,也可能我没找到如何使用,所以插入图片我用的是itext iText所 ...

  2. HDU 4307 Contest 1

    http://www.cnblogs.com/staginner/archive/2012/08/13/2636826.html 自己看过后两周吧,重新写了一遍.很受启发的.对于0.1,可以使用最小割 ...

  3. Android UI布局之TableLayout

    从字面上了解TableLayout是一种表格式的布局.这样的布局会把包括的元素以行和列的形式进行排列.表格的列数为每一行的最大列数.当然表格里边的单元格是能够为空的. 实例:LayoutDemo 执行 ...

  4. HDU 5416 CRB and Tree (2015多校第10场)

    欢迎參加--每周六晚的BestCoder(有米!) CRB and Tree Time Limit: 8000/4000 MS (Java/Others)    Memory Limit: 65536 ...

  5. Django连接mysql

    链接文档地址:https://docs.djangoproject.com/zh-hans/2.0/intro/tutorial02/ 由于我使用的是mysql,所以设置的是mysql的: 在mysl ...

  6. nyoj--891--找点(贪心)

    找点 时间限制:2000 ms  |  内存限制:65535 KB 难度:2 描述 上数学课时,老师给了LYH一些闭区间,让他取尽量少的点,使得每个闭区间内至少有一个点.但是这几天LYH太忙了,你们帮 ...

  7. Java获取环境变量和系统属性

    Java获取服务器环境变量和JVM系统变量    当程序中需要使用与操作系统相关的变量(例如:文件分隔符.换行符)时,Java提供了System类的静态方法getenv()和getProperty() ...

  8. AndroidStudio EventBus报错解决方法its super classes have no public methods with the @Subscribe

    首先说明,以前我用eventBus的jar包写得项目demo,前几天就写了一个EventBus的实例,这次我没用jar包,直接用gradle引用的,可是demo写完了,报错: its super cl ...

  9. RXjava的简介

    API 介绍和原理简析 1. 概念:扩展的观察者模式 观察者模式面向的需求是:举一个例子,警察在小偷实施作案的时候实施抓捕,在这一个例子中警察是观察者,小偷是被观察者.但是程序的观察者模式和这个还是有 ...

  10. SQL 的stuff函数

    1.作用 删除指定长度的字符,并在指定的起点处插入另一组字符. 2.语法 STUFF ( character_expression , start , length ,character_expres ...