JavaSE学习笔记(1)

权限修饰符

        private 同一个类中可以使用(私有的)

        protected 用类、同包、子类  (其他包的子类也可以访问)(受保护的)

        public 所有包的所有类

        default 默认的 

        定义一个类中属性的方式

                1. set方法

                2. 有参构造器

        顶一个类最标准方式

                1.属性私有化

                2.提供 有/无参的构造

                3.提供get/set方法

Arrays工具类

Arrays.sort() 数组排序

int index = Arrays.binarySearch(arr,79); 查询数据(折半二分查找)第一个为要查询的数组、第二个为要查询的值

面向对象

属性都以成员变量体现、行为都以方法体现

定义具体对象:类名 变量名 = new 类名();

构造方法:用于初始化对象、名称与类名一致。构造方法中不能同时使用super和this调用方法。

按值传递:参为基本数据类型、按引传递:参为引用类型 (对象也能当参数进行传递)

this最常用的方法 (代表的是当前类的)

        区分成员变量、局部变量

        this不能使用在static方法中        

        使用this进行构造方法调用的时候,一定要放在代码的第一行

static修饰变量

        成员变量 static string name;如果是静态则会被所有对象共享,所使用的都是一个静态变量储存地点为 “方法区” 而不是 “堆内存”

static方法

        其他类调用时不用创建对象可以直接 “ 类名.方法名() " 来调用

        如果静态方法想用外面的变量,变量也必须是静态的 ( 成员变量 )

        非静态方法可以随意调用静态方法  

static代码块

        一般用于初始化成员静态变量的

        类加载进入内存后执行一次 ( 只执行一次 )

        系统形成class文件加载进入java虚拟机时(类加载)

        代码块的执行顺序为: 父静、子静、父普、父构、子普、子构

继承性

        当许多个子类需要用到同一个成员变量方法时。创建一个父类,而后子类继承即可( 实现代码的复用 )  eg: 父类:car   子类: Aodi、Benchi

        public void Aodi extends Car(){}、public void Benchi extends Car(){}

        子类可以直接调用父类的方法。 super.run()。 调用父类的run方法

多态性

        指的是同一方法调用,由于对象不同可能会有不同的行为:一个类具有多种形态 要求: 对象不同、实现方法不同

        public static void factory(Fu f){ f.eat(); }

        zi1 zi1 = new zi1();   、  zi2 zi2 = new zi2();   

        factory(zi1);    子类1   指定传入哪个子类方法 

        创建对象: Fu a = new zi1(); 在编译的时候会认为是父类对象 用父类表示子类对象。只能调用父类共同拥有的方法,不能使用子类单独声明的方法。

        向上转型: 用父类表示子类        Fu a = new zi1();

        向下转型:强转          zi1 z =(zi1)f;

枚举

        Enum(枚举类型)就是放一些常量  public enum Gender{   男,女   }

        定义构造函数的时候直接写枚举类型即可

                private Gender sex;

        get,set方法返回值类型 即 也是枚举类型        如何传值:

        创建对象 student stu = new student(Gender.男) 即可完成传值

 包装类

        可以提供更多的功能 且 实现字符串与基本数据类型的转换

        Integer b = new Ingeter(10)     包装类表示的整数据

        int i = Integer.parseInt(c)  把string 转为int  c代表的是字符串(string 是底层为final的 不可更开)        

接口(规范)

        强制----类似于抽象类的升级版(java不可多继承  但可多接口) interface。

        接口里的方法都是公开抽象的。  必须全部重写接口里定义的方法

        public class Zi inplements(实现) Fu(接口)

        接口和接口之间是实现关系,并且可以多实现

抽象方法和抽象类

       (定义一种规范) 抽象方法必须重写,abstract (抽象方法没有方法体)

        eg: public abstract void aa();      即  子类必须重写aa方法

        抽象方法 只能由抽象类写。普通类无法写抽象方法。

        抽象类不可以被实例化(不可以new对象)

String类的使用

        a.charAt(2) 返回指定字符的下标

        string类的concat是创建一个新的字符数组,存原来与新加入的(拼接)

StringBuffer JDK1.0提供 线程安全,做线程同步检查,效率较低

StringBuilder JDK1.5提供 线程不安全 不做线程同步检查 效率高 (用的频率较高)

        eg: StringBuilder builder = new StringBuilder("填写字符串");

                        builder.append("sxt");  

                        builder.insert(3,"~~~"); 可以往指定的位置追加内容

                        builder.reverse();   反转,倒叙输出字符串

StringBuilder底层扩容机制(原有数组的长度 x 2 + 2)即为扩容后的长度

Date类(日期类)

        Date date = new Date(); 定义一个日期类

        d = "2019-10-9"  :  date = Date.valueof(d);  字符串转换为日期

        java.sql包下的Date(date只有年月日、Time 只有时分秒、Timestamp 既有年月日又有时分秒)

DateFormat类(一个抽象类。规定格式输出)

        Date date = new Date();

        DateFormat dateFormat = new SimpleDateFormat(yyyy年MM月dd日  hh(时):mm(分):ss(秒));

        String format = dateFormat.format(date); 规定格式输出当前年月日,时分秒

Math 类(皆为静态方法)

        Math.PI()   圆周率

        Matn.round()  四舍五入

        Math.sqrt() 开平方

        Math.pow() 几次幂

        Matn.Random()   产生0-1的随机数

Random类 (eg:0-9 随机整数)

        Random random = new Random();

        int i = random.nexInt(10);  产生0-10的随机整数(不包含10)

Object类(顶级父类)

        == 比的时基本数据类型

        a.equals(b) 比的是 a与b 引用类型的大小 (不考虑地址,比的是值)

        hashcode 类似于身份证  

        两个对象== 返回值为true  那么hashcode的值一定相同 但如果hashcode相同 ==的返回值却不一定是true

final

        final修饰变量,不可被改变,一旦有了初值后

        如果修饰方法   不可被子类重写,但可以被重载

        如果修饰类       不能被继承

异常处理

        一共两种处理方式

                1. tey-catch-finally 异常处理(手动处理)捕获异常ctrl+alt+T 可以快速书写异常处理等一系列命令

                        try{  (存放可能出错的代码块)
                            int a = 1010  (如果无措,cath不会运行)
                        }cath Exception{  (异常处理方案)
                            ("我是异常信息")    
                        }finally{
                            ~~~   (不管程序是否报错 finally内的代码都会正常执行)
                        }

                2. 抛出异常

                        public void aa() throws Exception{}

                        子类抛出的异常一定要比父类抛出的异常低  子 < 父

内部比较器 Comparable接口 

               CompareTo 比较字符串大小 (返回值为负则后面大,为正则前大)

                L1.CompareTo(L2);

外部比较器 Comparator接口

                int i = bj.compare(people,people2);

匿名内部类(也属于局部内部类)

                一个类里面只能放一个内部类(外边的用不了里边的,里面的可以用外面的)

                1.Fu f = new Fu(){  重写父类方法 }

                2.作用: 快速构建子类对象

                3.此内部类没有名字 所以不可定义构造函数,类中定义的变量在外无法赋值

                4.如真要赋值,可以采用普通代码块来进行操作

        

        

                

       

        

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值