复习(java):语法:面向对象_2

1. java8的增强类型

  • int——Integer
  • char—-Character
  • 其他类型都是第一个字母大写
Integer obj=5;
int it=obj;

字符串和基本变量的转换

String intstr="123";
int it1=Integer.pasrseInt(intStr);
int it2=new Integer(intStr);
String s=String.valueof(2.3); //数值转换为字符串

2.处理对象

打印对象

class Person{
    ......
}
public clas PrintObject{
    public static void main(String[] args){
        Person p=new Person("孙悟空");
        System.out.println(p);
    }
}

//
Person@15db9742
//
类名@hashCode

toString(所有的Object对象都有的属性)

==和equals方法

  • == 比较

    1. 若是基本变量,直接判断是否相对
    2. 若是引用对象,,只有他们指向同一个对象才相等
    3. ==不可以比较类型上没有父子关系的两个对象
  • equals

    1. 也需要引用变量指向同一个对象,才返回true
    2. 和==在使用上无区别
    3. 实际中需要重写
class person{
    private String name;
    private String idStr;
    public Person(String name,String idStr){
        this.name = name;
        this.idStr=idStr;
    }

    // 重写equals
    public boolean equals(Object obj){
        //两个对象为同一个对象
        if(this==obj)
            return true;
        //只有obj是Person对象
        if(obj!=null && obj.getClass()==Person.class){
            Person personobj=(Person)obj
            //并且当前对象的idStr与obj的idStr相等时才可以判断
            if(this.getIdStr().equals(personobj.getIdStr()))
                return false;
        }
    }
}
  • “hello”和 “new String(“hello”)”的区别
    1. hello:使用常量池
    2. new String(“hello”):产生两个字符串对象:a.常量池;b.堆上

3.类成员

单例类

  • 单例类:类始终只能创建一个实例
    1. private修饰构造器
    2. static修饰方法
class Singleton{
    //使用一个类变量来缓存曾经创建的实例
    private static Singleton instance;
    //构造函数添加private
    private Singleton(){}
    //静态方法用于返回自定义控制,且保证只产生一个Singleton
    public static Singleton getInstance(){
        if(instance==null)
            instance = new Singleton();
        return instance;
    }
}

4. final

  • 表示修饰的类,方法,变量不可变
  • final方法不可以重写:不希望子类重写父类的方法
  • 不可变类:创建该类的实例后,实例的变量不可以改变
  • 8个包装类String类是不可变类

1、所有成员变量都是PRIVATE;
2、不提供成员的SET方法;
3、确保所有方法不被重载,FINAL CLASS(强不可变类);所有的方法上面加上FINAL(弱不可变类);
4、如果有必要,重写Object类的hashCode()和equals()

  • final修饰,表示引用类型变量不可以重新赋值,但是内容是可以改变的

5. 缓冲实例的不可变量

  • 程序需要使用相同的不可变量,则可以将不可变量缓冲

6.抽象类

  • abstract
  • 抽象类不可以实例化,用于被子类调用
  • 抽象方法需要在方法上加abstract
抽象方法:在类中没有方法体的方法,就是抽象方法。
抽象类:含有抽象方法的类就叫抽象类。

抽象类中的抽象方法必须被实现!
如果一个子类没有实现父类中的抽象方法,则子类也成为了一个抽象类!
抽象类中的普通方法,可以不必实现。

作用

1 。抽象类只可以当作父类来继承


7 接口

  • 接口只能包括抽象的方法
  • implements

接口和抽象类的区别


8. 面向接口的编程


9. 内部类

  • 放在另一个类的内部定义

10. 对象和垃圾回收(参看jvm)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值