java SE02
五、面向对象
1. 封装
- 高内聚,低耦合
- 属性私有,get/set
2. 多态
- 属性没有多态
a. 条件 - 有继承关系
- 父类引用指向子类的对象
- 子类重写父类方法
3. 继承
- 子类拥有父类的全部特性
- 单继承,但可以实现多个接口
- extands
- 所有的类都默认直接或间接继承Object
六、内部类
1. 局部内部类
- 内部类可以直接获取外部类私有属性和方法
class Outter {
private int id=10;
public void out() {
System.out.println("这事外部类的方法");
}
class Inner { //内部类
public void in() {
System.out.println("这是内部类的方法");
}
//获得外部类的私有属性
public void getId() {
System.out.println(id);
}
}
}
public class Test{
public static void main(String[] args){
Outer outer=new Outer();
//通过外部类实例化内部类
Outer.Inner inner=outer.new Inner;
inner.in;
inner.getId;
}
}
输出结果:
这是内部类的方法
10
2. 局部内部类
- 一个java文件只能有一个public class类,但可以有多个class类
- 局部内部类是定义在一个方法或者一个作用域里面的类
public class Outter{
public void method(){
//局部内部类
class B{
public void in() {
}
}
}
}
3. 静态内部类
public class Outter{
public void method(){
//局部内部类
static class B{
public void in() {
}
}
}
}
4.匿名内部类
public class Test{
public static void main(String[] args){
//没有名字初始化类,不用将实例保存到变量中
new Apple().eat()
}
}
class Apple{
public void in() {
System.out.println("1");
}
}
输出结果:
1
七、异常
1. 五个关键字
- try{}
- catch(){} 先大后小
- finally{}
- throw 手动抛出异常
- throws 方法抛出异常
2. 自定义异常
- 继承Exception类即可
public class MyException extends Exception{
//if n>10 exception
private int n;
public MyException(int n){
this.n=n;
}
//抛出异常打印信息
@Override
public String toString() {
return "MyException{" + n +'}';
}
}
public class Test {
public static void main(String[] args) {
int a=11;
try {
test(a);
} catch (MyException e) {
System.out.println("MyException=>"+e);
}
}
static void test(int a) throws MyException {
System.out.println("传入的数字为:"+a);
if (a>10){
throw new MyException(a);//抛出异常
}
System.out.println("OK");
}
}
输出结果:
传入的数字为:11
MyException=>MyException{11}
java SE02的更多相关文章
- Spark案例分析
一.需求:计算网页访问量前三名 import org.apache.spark.rdd.RDD import org.apache.spark.{SparkConf, SparkContext} /* ...
- 故障重现(内存篇2),JAVA内存不足导致频繁回收和swap引起的性能问题
背景起因: 记起以前的另一次也是关于内存的调优分享下 有个系统平时运行非常稳定运行(没经历过大并发考验),然而在一次活动后,人数并发一上来后,系统开始卡. 我按经验开始调优,在每个关键步骤的加入如 ...
- Elasticsearch之java的基本操作一
摘要 接触ElasticSearch已经有一段了.在这期间,遇到很多问题,但在最后自己的不断探索下解决了这些问题.看到网上或多或少的都有一些介绍ElasticSearch相关知识的文档,但个人觉得 ...
- 论:开发者信仰之“天下IT是一家“(Java .NET篇)
比尔盖茨公认的IT界领军人物,打造了辉煌一时的PC时代. 2008年,史蒂夫鲍尔默接替了盖茨的工作,成为微软公司的总裁. 2013年他与微软做了最后的道别. 2013年以后,我才真正看到了微软的变化. ...
- 故障重现, JAVA进程内存不够时突然挂掉模拟
背景,服务器上的一个JAVA服务进程突然挂掉,查看产生了崩溃日志,如下: # Set larger code cache with -XX:ReservedCodeCacheSize= # This ...
- 死磕内存篇 --- JAVA进程和linux内存间的大小关系
运行个JAVA 用sleep去hold住 package org.hjb.test; public class TestOnly { public static void main(String[] ...
- 【小程序分享篇 一 】开发了个JAVA小程序, 用于清除内存卡或者U盘里的垃圾文件非常有用
有一种场景, 手机内存卡空间被用光了,但又不知道哪个文件占用了太大,一个个文件夹去找又太麻烦,所以我开发了个小程序把手机所有文件(包括路径下所有层次子文件夹下的文件)进行一个排序,这样你就可以找出哪个 ...
- Java多线程基础学习(二)
9. 线程安全/共享变量——同步 当多个线程用到同一个变量时,在修改值时存在同时修改的可能性,而此时该变量只能被赋值一次.这就会导致出现“线程安全”问题,这个被多个线程共用的变量称之为“共享变量”. ...
- Java多线程基础学习(一)
1. 创建线程 1.1 通过构造函数:public Thread(Runnable target, String name){} 或:public Thread(Runnable target ...
- c#与java的区别
经常有人问这种问题,用了些时间java之后,发现这俩玩意除了一小部分壳子长的还有能稍微凑合上,基本上没什么相似之处,可以说也就是马甲层面上的相似吧,还是比较短的马甲... 一般C#多用于业务系统的开发 ...
随机推荐
- npm 启动项目报错 Cannot find module '\@babel\compat-data\data\corejs3-shipped-proposals',解决办法
最近升级了系统的node ,webpack 等等,然后今天打开项目,突然启动不起来了~~ 报错信息如下: Module build failed (from ./node_modules/babel- ...
- Boost线程处理机制
采自文章:https://www.cnblogs.com/renyuan/p/6613638.html 大多数共享数据的线程均采用 boost::mutex mtx; boost::condition ...
- Grafana 系列文章(七):Grafana Explore 中的 Tracing
️URL: https://grafana.com/docs/grafana/latest/explore/trace-integration/ Description: Tracing in Exp ...
- 朋友圈那串神秘字符背后的开源项目「GitHub 热点速览」
如果你这周没刷到类似 "npub1sg6plzptd64u62a878hep2kev88swjh3tw00gjsfl8f237..." 的一串字符,那就说明本期 GitHub T ...
- 对线面试官:浅聊一下 Java 虚拟机栈?
对于 JVM(Java 虚拟机)来说,它有两个非常重要的区域,一个是栈(Java 虚拟机栈),另一个是堆.堆是 JVM 的存储单位,所有的对象和数组都是存储在此区域的:而栈是 JVM 的运行单位,它主 ...
- Vue 26 plugins
1 简介 它是用来增强vue的.它是包含install方法的一个对象,install的第一个参数是Vue,第二个以后参数是插件使用者传入的参数 插件里面可以配置全局过滤器.全局指令.混入.Vue原型上 ...
- WPF跨平台方案?
Avalonia XPF 通过我们的跨平台UI框架,释放现有WPF应用程序的全部潜力,使WPF应用程序能够在macOS和Linux上运行,而不需要昂贵和有风险的重写. 工作原理 我们使用 Fork o ...
- 机器学习-集成学习LightGBM
目录 前言 介绍LightGBM LightGBM的背景和起源 LightGBM的优点和适用场景 LightGBM的基本工作原理 安装和配置LightGBM 安装LightGBM 配置LightGBM ...
- js原型链污染详解
前言 之前打某湖论剑,两道js的题,给我整懵逼了,发现以前都没对js做过多少研究,趁着被毒打了,先研究一波js原型链,未雨绸缪. 基础 protype 首先我们研究js原型链,得搞明白原型是什么,这里 ...
- JavaScript 中的 apply、call、bind
在 JavaScript 中,apply.call.bind 是三个与函数调用相关的方法,它们都允许你在调用函数时手动设置函数的上下文(即 this 指向). 1.apply 方法:apply 方法允 ...