1. static

1)静态变量:Java虚拟机为静态变量开辟单独的存储空间,所以所有的对象内部的静态变量在内存中都指向同一个地址,那么不管哪个对象改变这个成员变量,所有对象中该成员变量的值都发生变化。调用的方法一般为

类名.成员变量(常量)

2)静态方法:静态方法内部只能使用静态的成员变量,调用的方法:

类名.方法名(参数)

3)静态代码块:静态代码块在该类第一次被使用时执行一次,以后再也不执行。例如:

public class StaticBlock{
static{
System.out.println("静态代码块!");
}
}

2.final

1)final数据:final修饰的数据时常量,只能赋值一次,通常声明为static,例如:

public final static int MALE = 0;

2)final方法:final修饰的方法不能被覆盖。

3)final类:不能被继承。

3.this

1)引用成员变量

public class ReferenceVarible{
private int a; public void setA(int a){
this.a = a;
}
}

2)引用构造方法:在类中只写一个构造方法,然后其他的构造函数用this引用这个构造方法

public class ReferenceVarible{
private int a; public ReferenceVarible(int a){
this.a = a;
} public ReferenceVarible(){
this(0);
}
}

在使用时this只能出现在构造方法内部的第一行可执行代码。

4.super

1)引用父类构造方法

public subClass(int a){
super(a);
}

以上代码调用父类有一个参数的构造函数。

2)引用父类成员方法:如果子类覆盖了父类的方法,还是想要调用父类的方法,可以用super修饰,例如:

super.test();

5.抽象类

public abstract class A{
public A(){}
}

抽象类不能使用自身的构造函数创建对象,但抽象类可以声明对象,默认都是null,无法调用抽象类中的非静态属性和非静态方法。

6.抽象方法

public abstract void test();

抽象方法没有方法体,所在的类必须为抽象类,强制子类覆盖抽象方法(类似制定了某种房屋的框架,强制遵守这个框架并实现细节)。

7.接口——常量数据+抽象方法

接口是一个规范,比如每家都有红烧肉,但是每家的红烧肉的味道都不一样,红烧肉就是接口,每家的红烧肉就是对接口的实现。

接口中声明的方法在实现的时候是必须被调用的,比如虽然每家的红烧肉味道不一样,但是都要有肉,而且是红烧的,然后就不管怎么做了,哪怕你做的是甜的,我也叫他红烧肉

接口的定义

访问控制符 interface 接口名 [extends 父接口名1,父接口名2......]{
常量声明
方法声明
}
public interface USB{
public static final int V = 5; public abstract byte[] readData();
public abstract void writeData(byte[] data);
}

接口的实现

访问控制符 [修饰符] class 类名 [extends 父类名] implements 父接口名1,父接口名2......
public class Computer implements USB{
int memorySize; public byte[] readData{
//读数据逻辑
} public void writeData{
//写数据逻辑
}
}

8.包

1)打包:将声明的类放入包中,即为类指定包名。

package 包名1[.包名2[.包名3......]];

package.game.bubble.ui就对应路径\game\bubble\ui

打包的语句必须是程序代码中第一行可执行代码

打包的语句最多只有一句。

2)JDK编译和运行打包

javac -d 类文件路径 源代码名称
//文件名:PackageClass.java
package chapter8;
public class PackageClass{
  //类内部的代码
} javac -d d:\ PackageClass.java

上述命令将PackageClass类编译成class,并将生成的class文件D盘根目录下。运行这个类:

java 包名.类名
java chapter8.PackageClass

3)引入包

import 包名1.[.包名2[.包名3......]].类名|*;

import只引入当前包下面的类,而不引入该包下面的子包里面的类。

static,this,抽象类,接口和包的更多相关文章

  1. 面向对象 继承 抽象类 接口 static 权限修饰符

    Day01 面向对象 继承 抽象类 接口 static 1.匿名对象是指创建对象时,只有创建对象的语句,却没有把对象地址值赋值给某个变量. 2.类的继承是指在一个现有类的基础上去构建一个新的类,构建出 ...

  2. 抽象类&接口

    抽象类与接口是Java语言中对抽象概念进行定义的两种机制,正是由于他们的存在才赋予java强大的面向对象的能力.他们两者之间对抽象概念的支持有很大的相似,甚至可以互换,但是也有区别. 在Java中抽象 ...

  3. 13. 抽象类 & 接口

    一.抽象类 // 抽象类Shape public abstract class Shape { // 1. 成员变量 private String color; // 2. 初始化块 { System ...

  4. 速战速决 (4) - PHP: 类基础, 抽象类, 接口, trait

    [源码下载] 速战速决 (4) - PHP: 类基础, 抽象类, 接口, trait 作者:webabcd 介绍速战速决 之 PHP 类基础 抽象类 接口 trait 示例1.类的相关知识点 1(基础 ...

  5. 《day09---继承-抽象类-接口》

    //面向对象_继承_概述---单继承_多继承. //描述学生. /* class Student { //属性. String name; int age; //行为: void study() { ...

  6. C# 你什么让程序员寂寞成酱紫 (男生版 娱乐中学习 抽象类 接口 继承 实现方法 )

    你什么让程序员寂寞成酱紫 (男生版 娱乐中学习 抽象类 接口 继承 实现方法 )   一个家庭 相当于 一个空间,这个空间里 有 很多元素,比如 爱,爱这个抽象事物,可能有很多动作,接吻.交流,对于一 ...

  7. 面向对象的理解 抽象类&接口

    一.关于面向对象 1.什么是面向对象     在解释面向对象之前,先说说面向过程.学过C的同学都知道,C就是面向过程的一种语言.那什么是面向过程呢?比方说组装主机,对于面向过程,需要从0开始.买cpu ...

  8. python 全栈开发,Day21(抽象类,接口类,多态,鸭子类型)

    一.昨日复习 派生方法和派生属性 super 只有在子父类拥有同名方法的时候, 想使用子类的对象调用父类的方法时,才使用super super在类内 : super().方法名(arg1,..) 指名 ...

  9. python面向对象 : 抽象类(接口类),多态,封装(私有制封装)

    一. 抽象类(接口类) 与java一样, python也有抽象类的概念但是同样需要借助模块实现,抽象类是一个特殊的类, 它的特殊之处在于只能被继承, 不能被实例化. 从设计角度去看, 如果类是从现实对 ...

  10. 【学习笔记】--- 老男孩学Python,day18 面向对象------抽象类(接口类), 多态, 封装

    抽象类,接口类 Python没有接口这个概念 抽象类(接口类): 目的是制定一个规范 要学会归一化设计,有重复的东西就要想把它们合并起来 from abc import ABCMeta, abstra ...

随机推荐

  1. ubuntu: 环境搭建

    1.修改更新源    sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak    sudo gedit /etc/apt/sources.li ...

  2. kruskal --- c++ (2)

    #include <cstdio> #include <algorithm> using namespace std; struct aaa{ int l,r,w; bool ...

  3. Daily Scrum 11.9

    摘要:本次的meeting主要是继续讨论程序的问题以及单元测试和集成测试等,本次为1.01版本.本次的Task列表如下: Task列表 出席人员 Today's Task Tomorrow's Tas ...

  4. 简单易用的导出文件(Excel、word等各种格式)的方法

    以前学习过NPOI导出数据到Excel中,代码较长,不易记忆.工作中,看到了其他同事写的代码,研究了一下,贴出来,共同学习. 使用这种方式,不仅可以设置表格的样式,而且代码简洁. 首先,在后台中通过S ...

  5. php输出错误屏蔽的函数

    /** * 设置默认值方法 * @param mult $data * @param string $key key值 * @param string $default 默认值 */ public s ...

  6. Codeforces Round #311 (Div. 2) D. Vitaly and Cycle 奇环

    题目链接: 点这里 题目 D. Vitaly and Cycle time limit per test1 second memory limit per test256 megabytes inpu ...

  7. 【EntityFramwork--处理数据并发问题】

    EntityFramwork--处理数据并发问题时支持乐观并发,即假定最佳场景(这里是指数据在更新过程中没有发生变化) 具体看<Beginning ASP.NET 4.5 Databases&g ...

  8. sql2008安装时提示重启计算机失败解决方法

    安装sql 2008的时候,在检测安装环境中有一项是”重新启动计算机”显示的结果是“失败”.上网看了半天,找到了解决方案,虽然我没弄明白具体原因,但问题是解决了,解决方案如下: 一.Windows+R ...

  9. 终于明白公测的beta 源自何处了

    A very early version of a software product that may not contain all of the features that are planned ...

  10. SPOJ MULTQ3 7299 Multiples of 3 (区间更新)

    题目连接:http://www.spoj.com/problems/MULTQ3/ #include <iostream> #include <stdio.h> #includ ...