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:这里现阶段不是很懂也没关系。。。以后还会详细说

最新文章

  1. YbSoftwareFactory 代码生成插件【十六】:Web 下灵活、强大的审批流程实现(含流程控制组件、流程设计器和表单设计器)
  2. 使用requestAnimationFrame做动画效果一
  3. linux下redis的安装与部署及基础命令
  4. java 21 - 15 新IO流 NIO
  5. 求第N数大问题
  6. Js 正则表达式特殊字符含义
  7. iOS开发:UINavigationController常用操作
  8. jQuery队列控制方法详解queue()/dequeue()/clearQueue()
  9. xml写代码
  10. linux中ls、ls -l、ls -al、ll命令
  11. 【HDOJ】1506 Largest Rectangle in a Histogram
  12. ASP.NET MVC框架开发系列课程 (webcast视频下载)
  13. 【3】python核心编程 第六章-序列:字符串、列表和元组
  14. LIS问题分析
  15. 多年iOS开发经验总结
  16. Android的ANR详解(原因和方案)
  17. 痞子衡嵌入式:串口调试工具Jays-PyCOM诞生记(6)- 打包发布(PyInstaller3.3.1)
  18. Spring Cloud 入门教程(七): 熔断机制 -- 断路器
  19. 用CSS解决一个让人头疼的问题
  20. JavaScript(JS)之Javascript对象

热门文章

  1. 2023-03-01 react-native 实现 复制功能 @react-native-community/clipboard 报错:TypeError: null is not an object (evaluating 'NativeClipboard_1.default.setString')。
  2. 19_webpack_externals
  3. docker登录Ubuntu出现error storing credentials - err: exit status 1, out: `Cannot autolaunch D-Bus without X11 $DISPLAY`的解决方法
  4. GIS空间分析和建模复习重点1
  5. IaaS--云虚拟机(二)(何恺铎《深入浅出云计算》笔记整理)
  6. kali上的apache2
  7. centos NTP时间同步
  8. 【文献阅读】Automatic berthing for an underactuated unmanned surface vehicle: A real-time motion planning approach
  9. equals的用法的注意事项
  10. CANas分析软件,DBC文件解析,CAN报文分析,仿CANoe曲线显示