Java SE

1、IDEA基本操作

 psvm + 回车 : main() 方法声明
sout + 回车 : = System.out.println();
Ctrl + D : 把当前行复制到下一行
new Scanner + 回车 : 调用Scanner方法
new Scanner(System.in); alt + 回车 + 回车 → Scanner scanner = new Scanner(System.in);
Scanner + 回车 : 调用Scanner方法

2、java零散笔记

  • java 是值传递

  • Scanner用完记得结束

Scanner scanner = new Scanner(System.in);
//内容
scanner.close();//结束使用Scanner
int[] numbers = {10,20,30,40,50}; //定义一个数组
//遍历数组的元素
for (int x : numbers){
System.out.println(x);
}
  • 关键字
//public    公共的
//protected 受保护的
//default 默认的,可以不写
//private 私有的
  • 构造器
 /*
构造器:
1. 和类名相同
2. 没有返回值
作用:
1. new 本质在调用构造方法
2. 初始化对象的值
注意点:
1.定义有参构造只后,如果想使用无参构造,必须显示的定义一个无参的构造 Alt + Insert this. =
*/
  • 面向对象

    5. 对象的创建和使用
    - 必须使用new 关键字创造对象, 构造器 Person kuangshen = new Person();
    - 对象的属性 kuangshen.name
    - 对象的方法 kuangshen.sleep()
  • 面向对象的三大特性

    • 封装

      private int id;
      public int getId() {
      return id;
      } public void setId(int id) {
      this.id = id;
      }
      //用到了private,要想调用,就要写 get/set 方法
    • 继承

        //extends关键字
      public class Teacher extends Person {
      } //Teacher类继承Person类
      //在Java中,所有的类,都默认直接或者间接继承Object类
      • 重写

         //重写都是方法的重写,与属性无关
        
         //静态方法 : //方法的调用只和左边,定义的数据类型有关
        A a = new A();
        a.test();//A
        //父类的引用指向了子类
        B b = new A(); //子类重写了父类的方法
        b.test();//B /*
        重写:需要有继承关系,子类重写父类的方法!
        1.方法名必须相同
        2.参数列表必须相同
        3.修饰符:范围可以扩大但不能缩小:public > protected > default > private
        重写,子类的方法和父类必须要一致,方法体不同!
        alt + insert : override?
        */
      • super

        /*
        1.调用子类的构造方法时,会默认调用父类的无参构造方法, 要想调用父类的有参构造,
        我们需要显示的:super(参数列表),来调用父类有参数 的构造函数,在子类的构造方法中第一行加入super();
        */ //super调用父类的构造方法,必须在构造方法的第一个
        //super必须只能出现在子类的方法中或者构造方法中
        //super 和 this 不能同时调用构造方法! /*
        Vs this :
        代表的对象不同:
        this:本身调用者这个对象
        super:代表父类对象的引用
        前提
        this:没有继承也可以使用
        super:只能在继承条件才可以使用
        构造方法
        this(); 本类的构造
        super();父类的构造
        */
      • object类

        //在Java中,所有的类,都默认直接或者间接继承Object类
    • 多态

      /*
      1.多态是方法的多态,属性没有多态
      2.父类和子类,有联系
      3.存在的条件:继承关系,方法需要重写,父类引用指向子类对象 Father f1 = new Son(); 不能被重写的方法:
      1.static 方法,属于类,它不属于实例
      2.final 常量
      3.private 方法 私有的
      */ //instanceof 判断两个类有没有父子关系 /*
      //类型之间的转换: //高 低
      Person obj = new Student(); //student 将这个对象转换为Student类型,我们就可以使用Student类型的方法了!
      ((Student) obj).go(); //子类转化为父类,可能丢失自己的本来的一些方法!
      Student student = new Student();
      Person person = student; //低转高,直接转 1.父类引用指向子类的对象
      2.把子类转换为父类,向上转换;
      3.把父类转换为子类,向下转换;强制转换
      4.方便方法的调用,减少重复的代码!简介
      */
  • static

    1.非静态方法可以调用静态方法中的所有东西,静态方法可以调用静态方法,不能调用非静态方法中的东西
    类可以直接调用静态的变量:Student.age
    2.执行顺序:静态代码块(只执行一次) > 匿名代码快 > 构造方法
    3.被final修饰的类,不能被继承,没有子类 (final之后断子绝孙)
  • 抽象类

    //抽象类的所有方法,继承了它的子类,都必须要实现它的方法~  除非子类也是抽象类,就不用了,
    
    //abstract , 抽象方法,只有方法名字,没有方法的实现!
    public abstract void doSomething(); //1. 不能new这个抽象类,只能靠子类去实现它;约束!
    //2. 抽象类中可以写普通的方法~
    //3. 抽象方法必须在抽象类中~
    //抽象的抽象:约束
  • 接口

    //interface 定义的关键字 , 接口都需要有实现类
    
    //接口中的所有定义的方法其实都是抽象的 public abstract
    
    // 抽象类:extends
    // 类 可以实现接口 implements 接口
    // 实现了接口的类,就需要重写接口中的方法 //多继承~利用接口实现多继承
  • 内部类

    • 成员内部类

      1. 调用成员内部类

        //在外面的类的最后,写一个方法,调用成员内部类(创建对象,在访问)
        class Outer08{
        class Inner08{ //成员内部类
        public void say(){ }
        } public void t1(){
        Inner08 inner08 = new Inner08();
        inner08.say();
        }
        }
      2. 可以直接访问外部类的所有成员,包含私有的。

      3. 外部其他类调用内部类的二种方法

        //
        Outero8.Inner08 inner08 = outero8.new Inner08();
        inner08.say();
        //2. 在外部类中,编写一个方法,可以返回 Inner08 对象
        //方法,返回一个Inner08实例
        public Inner08 getInner08Instance(){
        return new Inner08();
        }
        //调用
        Outer08.Inner08 inner08Instance = outer08.getInner08Instance();
        inner08Instance.say();
      4. 如果成员内部类的成员和外部类的成员重名,会遵守就近原则,可以通过 外部类.this.属性 来访问。

    • 静态内部类

    • 局部内部类

      1. 可以直接访问外部类的所有成员,包含私有的

      2. 不能添加访问修饰符,但是可以使用 final 修饰

      3. 作用域:仅仅在定义它的方法或代码块中

      4. 外部类在方法中,可以创建 Inner02 对象,然后调用方法即可

        class Outer02{//外部类
        public void m1(){//方法
        final class Inner02{//局部内部类(本质仍然是一个类)
        public void f1(){ }
        }
        Inner02 inner02 = new Inner02();
        inner02.fi();
        }
        } //main 方法中调用
        Outer02 outer02 = new Outer02();
        outer02.m1(); //调用了fi() 方法
      5. (在类的方法中的类,调用的时候可以在此方法最后 new 局部内部类)

      6. 如果外部类和局部内部类的成员重名,默认遵循就近原则,可以通过 外部类.this.成员 来访问。

    • 匿名内部类

      1. 没有名字初始化类,不用将实例保存到变量中
    //一个Java类中可以有多个class类,但是只能有一个public class
  • 异常

    //假设要捕获多个异常:从小到大

2022-9-5 JavaSE note的更多相关文章

  1. javaSE中JDK提供的四种线程池

    对javaSE中JDK提供的四种线程池稍作整理   一.Executor   package java.util.concurrent; /** * @since 1.5 * @author Doug ...

  2. HDU 2022 海选女主角

    http://acm.hdu.edu.cn/showproblem.php?pid=2022 Problem Description potato老师虽然很喜欢教书,但是迫于生活压力,不得不想办法在业 ...

  3. [Log4j使用教程] JavaSE/JavaEE/SpringMVC中使用Log4j

    要想使用Log4j, 首先需要下载到Log4j的jar, Download: http://www.apache.org/dyn/closer.cgi/logging/log4j/1.2.17/log ...

  4. 三星Note 7停产,原来是吃了流程的亏

    三星Note 7发售两个月即成为全球噩梦,从首炸到传言停产仅仅47天.所谓"屋漏偏逢连天雨",相比华为.小米等品牌对其全球市场的挤压.侵蚀,Galaxy Note 7爆炸事件这场连 ...

  5. 《Note --- Unreal --- MemPro (CONTINUE... ...)》

    Mem pro 是一个主要集成内存泄露检测的工具,其具有自身的源码和GUI,在GUI中利用"Launch" button进行加载自己待检测的application,目前支持的平台为 ...

  6. 《Note --- Unreal 4 --- Sample analyze --- StrategyGame(continue...)》

    ---------------------------------------------------------------------------------------------------- ...

  7. 用大白话聊聊JavaSE -- 如何理解Java Bean(一)

    首先,在开始本章之前,先说一个总的概念:所谓的Java Bean,就是一个java类,编译后成为了一个后缀名是 .class的文件.这就是Java Bean,很多初学者,包括当年的我自己,总是被这些专 ...

  8. [LeetCode] Ransom Note 赎金条

    
Given
 an 
arbitrary
 ransom
 note
 string 
and 
another 
string 
containing 
letters from
 all 
th ...

  9. javaSE基础07

    javaSE基础07 一.static静态修饰符 用了static修饰的变量就会变成共享的属性,只会初始化一次,在内存中只存在一个,并且每个对象都可以访问,存放在方法区(数据共享区) 1.1 stat ...

随机推荐

  1. JAVA中简单的for循环竟有这么多坑,你踩过吗

    JAVA中简单的for循环竟有这么多坑,你踩过吗 实际的业务项目开发中,大家应该对从给定的list中剔除不满足条件的元素这个操作不陌生吧? 很多同学可以立刻想出很多种实现的方式,但你想到的这些实现方式 ...

  2. Leetcode 不同路径系列

    Leetcode不同路径系列题解笔记 62. 不同路径 一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 "Start" ). 机器人每次只能向下或者向右移动一 ...

  3. Java数组和Arrays 类

    1.创建数组的三种方式: ①动态初始化:数组的初始化和数组元素的赋值操作分开进行 dataType[ ] arrayRefVar = new dataType [ arraySize ] ; Emp ...

  4. 基于.NetCore开发博客项目 StarBlog - (15) 生成随机尺寸图片

    系列文章 基于.NetCore开发博客项目 StarBlog - (1) 为什么需要自己写一个博客? 基于.NetCore开发博客项目 StarBlog - (2) 环境准备和创建项目 基于.NetC ...

  5. VS无线振弦采集仪的常见问题

    1 无法开机( 1)检查电源连接是否正确,电压范围应为 DC10~24V,输出能力不低于 2A, 正负极连接正确.若电池极性接反,即便未进行过开机操作也会导致设备永久性损坏.( 2)若使用电池供电,则 ...

  6. e.printStackTrace() 原理的分析

    e.printStackTrace(); 先查看下源码 如图片中1所示,使用的是 PrintStreamOrWriter public void printStackTrace() { printSt ...

  7. Vue生命周期和MVVM框架

    生命周期 组件从开始到结束的全过程 创建阶段:beforeCreate.created 挂载阶段:beforeMount.mounted 更新阶段:beforeUpdate.updated 销毁阶段: ...

  8. python+tkinter 简单的登录窗口demo

    一个简单的登录窗口布局,可以用于日常快速搭建一个简单的窗口类. from tkinter import * import tkinter.messagebox class LoginUi: def _ ...

  9. SpringWeb 拦截器

    前言 spring拦截器能帮我们实现验证是否登陆.验签校验请求是否合法.预先设置数据等功能,那么该如何设置拦截器以及它的原理如何呢,下面将进行简单的介绍 1.设置 HandlerInterceptor ...

  10. 迭代器和增强for循环

    iterator 迭代:即Collection集合元素的通过获取方法,在获取元素之前先要判断集合中有没有元素,如果有就把这个元素取出来,然后在判断,如果还有就再去除卡u,一直把集合中的所有元素全部拿出 ...