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. iOS/Objective-C开发 字典NSDictionary的深复制(使用category)

    目标:把NSDictionary对象转换成NSMutableDictionary对象,对象内容是字符串数组,需要实现完全复制(深复制). 如果调用NSDictionary的mutableCopy方法, ...

  2. Apache网站根目录

    Apache环境配置好了,把项目放到网站根目录下的htdocs文件夹下,运行网站的时候不需要加上该文件夹的名称,Apache直接在上面找对应的项目

  3. ASP.NET MVC 学习第三天

    今天来简单说一下Razor视图引擎语法相关的和视图类. 添加一个MvcTest项目,继续添加一个Home控制器,完成index的视图添加.我们就在index这里分析razor视图引擎.下面是home控 ...

  4. .NET中class和struct的区别

    1.引言 提起class和struct,我们首先的感觉是语法几乎相同,待遇却天壤之别.历史将接力棒由面向过程编程传到面向对象编程,class和struct也背负着各自的命运前行.在我认为,struct ...

  5. Oracle 存储过程实例

    create or replace procedure PCREPORT is startDate DATE; --起始如期 nowTime DATE; --当前日期 nowTime2 DATE; - ...

  6. Winform控件学习-TreeView

    转自 http://www.cnblogs.com/zxlovenet/p/3589425.html      作者: 初行 TreeView控件用来显示信息的分级视图,如同Windows里的资源管理 ...

  7. c++ memset 函数 及 坑

    #include <string.h> #include <stdio.h> typedef struct ss{ int num; ][]; }tent; tent a; i ...

  8. Maven--(一个坑)在settings.xml文件中添加mirrors导致无法新建Maven项目

    这是用新电脑第一次创建Maven项目--当然是一个测试项目.已经差不多忘了该怎样做,所以参考我的博客:http://www.cnblogs.com/wql025/p/4996486.html,这应该是 ...

  9. 针对谷歌默认最小字体12px的正确解决方案 (css、html)

    今天晨会,产品要求把以前12px的字体改小一点,我心想这有什么难的,就随口答应了.哪知,改css的时候,谷歌浏览器中font-size小于12px时,字体就不会再缩小了.当时我的第一反应就是会不会是其 ...

  10. nodeJS实战

    github代码托管地址: https://github.com/Iwillknow/microblog.git 根据<NodeJS开发指南>实例进行实战{{%并且希望一步步自己能够逐步将 ...