static、抽象类、接口、内部类

一.static关键字详解

1.静态的变量/方法

package Demo02;

//static
public class Student { private static int age;//静态的变量 多线程
private double score;//非静态的变量 public void run(){ } public static void go(){ } public static void main(String[] args) {
Student s1 = new Student();
System.out.println(Student.age);
//System.out.println(Student.score);报错
System.out.println(s1.age);
System.out.println(s1.score); Student.go();
go();
//Student.run();报错
new Student().run();
}
}

2.静态代码块

package Demo02;

public class Person {
//2:赋初始值
{
//代码块(匿名代码块)
System.out.println("匿名代码块");
} //1:只执行一次
static {
//静态代码块
System.out.println("静态代码块");
} //3
public Person() {
System.out.println("构造方法");
} public static void main(String[] args) {
Person person1 = new Person();
System.out.println("==========================");
Person person2 = new Person();
// 静态代码块
// 匿名代码块
// 构造方法
// ==========================
// 匿名代码块
// 构造方法
}
}

3.静态导入包

package Demo02;
//静态导入包
import static java.lang.Math.random;
import static java.lang.Math.PI; public class test {
public static void main(String[] args) {
//未导入包时书写
System.out.println(Math.random());//随机数
//导包后书写
System.out.println(random());
System.out.println(PI);
}
}

二.抽象类


1.抽象类

package Demo03;

//abstact   抽象类:类   extends:单继承
//接口可以多继承
public abstract class Action { //约束~有人帮我们实现~
//abstract 抽象方法,只有方法名字,没有方法实现
public abstract void doSomethig();
}

2.抽象类继承

package Demo03;

//抽象类的所有类方法,继承了他的子类。都必须要实现它的方法
//除非子类本身也是abstract
public class A extends Action {
@Override
public void doSomethig() { }
}


三.接口

声明类的关键字是class,声明接口的关键字是interface


1.接口UserService

package Demo04;

//interface定义的关键字,接口都需要有实现类
public interface UserService {
//接口中的所有定义,其实都是抽象的 public abstract
//public abstract void run();如下 //常量 public static final int age = 99;
int age=99; void add(String name);
void delete(String name);
void update(String name);
void query(String name);
}

2.接口TimeService

package Demo04;

public interface TimeService {
void timer();
}

3.实现类

package Demo04;

//抽象类   extends
//类可以实现接口 implements
//实现了接口得类,必须要重写接口中的所有方法 //多继承~利用接口实现多继承
public class UserServiceImpl implements UserService,TimeService {
@Override
public void timer() { } @Override
public void add(String name) { } @Override
public void delete(String name) { } @Override
public void query(String name) { } @Override
public void update(String name) { }
}


四.内部类


package Demo05;

public class Outer {
public void methor(){
class A{
//局部内部类
}
} private int id=10;
public void out(){
System.out.println("这是外部类的方法");
} //一个java文件中可以有多个class类,但是只能有一个public class
class Inner{
public void in(){
System.out.println("这是内部类的方法");
} //获得外部类的私有属性
public void getID(){
System.out.println(id);
}
}
}

package Demo05;

public class Application {
public static void main(String[] args) {
//new
Outer outer = new Outer();
//通过这个外部类来实例化内部类
Outer.Inner inner = outer.new Inner();
inner.in();
inner.getID();
} }

ps:这里现阶段不是很懂也没关系。。。以后还会详细说

Day15-static、抽象类、接口、内部类的更多相关文章

  1. Java入门教程十(抽象类接口内部类匿名类)

    抽象类(abstract) 一个类只定义了一个为所有子类共享的一般形式,至于细节则交给每一个子类去实现,这种类没有任何具体的实例,只具有一些抽象的概念,那么这样的类称为抽象类. 在面向对象领域,抽象类 ...

  2. 【Java】对象、类(抽象类与内部类)、接口

    博文内容概况 对象和类 抽象类 接口 内部类 对象和类 对象是对客观事物的抽象,类是对对象的抽象.类是一种数据类型,其外观和行为由用户定义.类中可以设置两种类型的元素:字段(有时被称为数据成员)和方法 ...

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

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

  4. JavaSE学习总结(六)——接口、抽象类、内部类

    一.不需要实例化的原因 看一个示例: package com.zhangguo.chapter5.s1; /**动物园*/ public class Zoo { public static void ...

  5. 06 面向对象:多态&抽象类&接口&权限修饰符&内部类

    多态: /* 多态(polymorphic)概述 * 事物存在的多种形态 多态前提 * a:要有继承关系. * b:要有方法重写. * c:要有父类引用指向子类对象. * 成员变量 * 编译看左边(父 ...

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

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

  7. Java语言简介、基础组成、封装、继承、多态、抽象类、内部类、接口

    目录 Java简介 Java语言基础组成 面向对象 对象 封装 构造函数 this关键字 static(静态关键字) 主函数 静态什么时候用呢? 面向对象(数组工具对象建立) 设计模式 继承 成员变量 ...

  8. Java中:接口,抽象类,内部类

    Java8中的接口 public interface Output { //接口里定义的成员变量只能是常量 //默认使用public static final修饰 int MAX_CACHE_LINE ...

  9. 13. 抽象类 & 接口

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

  10. java - day008 - 接口,内部类

    接口 作用: 结构设计工具,用来解耦合,需要有子类,隔离具体实现 接口是一个极端的抽象类 用 interface 代替 class 用 implements 代替 extends // 接口中所有东西 ...

随机推荐

  1. JAVA学习笔记-10

    String类: 字符串是一个特殊的对象.字符串最大的特点:一旦被初始化就不可以被改变. String类适用于描述字符串事物.那么它就提供了多个方法对字符串进行操作. 常见的操作: 1.获取: int ...

  2. start-stop服务器启动

    springBoot打成jar包扔到linux服务器 start.sh nohup java -Dfile.encoding=utf-8  -jar XXX-1.0-SNAPSHOT.jar > ...

  3. 关于新手在使用git过程中的基本问题--前端开发篇

    1.首先git是什么? git学名叫做分布式版本控制系统. 它能做啥呢?想一想,你在写项目的时候,尤其是大型的协作项目,往往一个项目会经过很多次修改才上线,在这个过程中,你会写项目1.0版.2.0版诸 ...

  4. BIP 两个请求成功后,才能做某一件事

    //保存前校验 let SetXStatus = 0; viewModel.on("beforeSave", function (args) { let _this = this; ...

  5. Docker学习笔记-02 常用命令

    1.启动类: 启动docker: systemctl start docker 停止docker: systemctl stop docker 重启docker: systemctl restart ...

  6. P8872 [传智杯 #5 初赛] D-莲子的物理热力学

    题目链接:P8872 [传智杯 #5 初赛] D-莲子的物理热力学 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 参考了题解,自己在这再写一遍 假设数组有序且经过m次操作后的数组最 ...

  7. R7-1 求10个点到原点的距离和

    R7-1 求10个点到原点的距离和 分数 15 全屏浏览题目 切换布局 作者 张高燕 单位 浙大城市学院 求10个点到原点的距离和.输入10个点的坐标,计算并输出这些点到原点的距离和.定义函数dist ...

  8. ORACLE之自治事务

    在创建存储过程时,可以用关键字: PRAGMA AUTONOMOUS_TRANSACTION 创建自治事务. 常用场景: 触发器抛错导致事务回滚,日志的记录需要用自治事务进行记录 代码抛错,导致数据库 ...

  9. 写一个PHP单例模式

    1 <?php 2 /** 3 * Created by PhpStorm. 5 * Date: 2019/1/29 6 * Time: 17:44 7 */ 8 9 namespace App ...

  10. C#动态创建对象和其属性

    dynamic contact = new ExpandoObject(); contact.Name = "Patrick Hines"; contact.Phone = &qu ...