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. Tomcat集群配置--负载均衡

    Tomcat集群配置学习篇-----分布式应用 现目前基于javaWeb开发的应用系统已经比比皆是,尤其是电子商务网站,要想网站发展壮大,那么必然就得能够承受住庞大的网站访问量:大家知道如果服务器访问 ...

  2. 【Hive】元数据库部署的三种方式和选择【metaStore server】

    一.Derby 元数据使用之前,要在hive目录下执行schematool命令,进行初始化设置 bin/schematool -dbType derby -initSchema 启动hive后,可以用 ...

  3. JAVA学习笔记-06

    多态:可以理解为事物存在的多种体现形态 1.多态的基本体现 父类的引用指向了自己的子类对象 父类的引用也可以接收自己的子类对象 2.多态的前提 必须是类与类之间有关系,要么继承,要么实现 通常还有一个 ...

  4. windows下BAT实现守护进程

    通过bat守护特定exe @echo off :start choice /t 5 /d y /n >nul tasklist|find /i "程序名称.exe" if E ...

  5. Java基础__04.GUI编程

    GUI编程常见的组件: 窗口 弹窗 面板 文本框 列表框 按钮 图片 监听事件 鼠标操作 键盘事件 GUI简介 GUI的核心技术:Swing AWT,是需要jre环境的. AWT介绍 包含了很多类和接 ...

  6. sqoop,hive2mysql

    sqoop export \ --connect jdbc:mysql://master:3306/testdb \ --username hive \ --password 123456 \ --t ...

  7. Excel比较两列是否相等

    通常的方式: 先将两列排序 通过判定如 =A1=B1 或者ctrl + \ (mac 是 command) 可以定位到差异的那行

  8. input file 图片上传前预览

    1.获取到这个File对象之后就可以获取到上传文件的一些属性,比如:lastModified(代表文件的修改日期,而非上传日期).name.size(单位是b).type(例如图片就是"im ...

  9. nop 中创建任务(Task)

    NopCommerce 中Task 原理是服务端开启线程定时跑. 1.在数据表ScheduleTask中添加一条数据, 2.自定义类,继承ITask 即可 using Data.Log4Net; us ...

  10. Docker宿主机agetty进程cpu占用率100% 问题

    参考  https://blog.51cto.com/u_15450131/4751959 systemctl stop getty@tty1.service systemctl mask getty ...