3月6日至3月10日学习博客

3月6日

写了一个关于水果商城的综合案例

总结一下遇到的问题:在购物车的实体类中有一个用户id的属性,把用户类设为购物车的一个属性,在写购物车add方法时,新建了一个空的user,但是只是通过循环把查找到的用户id给了这个空的对象,导致添加到购物车集合输出后用户id哪里一直为空。正确写法如下

 还有一个问题是新建了一个Dataprovider然后将其中的方法设置为静态方便全局调用,但是我将方法类又调用了其他的集合导致每次都被初始化

3月7日

学习了一些方法,Object是所有类的父类,我们一般用在对对象信息的打印上,Object类提供的toString()方法,所有的类都拥有toString方法,getClass()方法,作用:返回正在运行的类是哪一个equals。当两个类之间存在继承关系,或者类与接口之间存在实现关系,我们可以使用instanceof来判断一个对象是否属于某一个类型。当一个对象没有任何引用执行它的时候,它就会满足垃圾回收机制的要求,被垃圾回收机制回收,会自动调用finalize()方法。不是开发人员自己主动调用的,是由虚拟机自己调用的。只要是实现了Cloneable()这个接口的类就可以调用这个方法,这个方法会产生一个新的对象
这个接口的实现是调用方法的前提,否则会抛出异常
protected Object clone() throws CloneNotSupportedException

3月8日

            基本数据类型                    封装类型
                byte                                  Byte
                short                                Short
                int                                    Integer
                long                                 Long
                float                                 Float
                double                             Double
                char                                 Character
                boolean                            Boolean

static修饰的方法,可以并且建议使用类名进行直接调用
public static int parseInt(String s) throws NumberFormatException
除了char类型,.其余的数据类型都满足

基本数据类型 自定义变量名 = 封装类型.parseXXXX("值");

学会Integer,Character,String封装类的常用方法在API中查找

3月9日

学习String,StringBuffer ,StringBuilder

区别

String:字符串常量
    String类型不可以改变的,每次改变的时候都会产生新的对象,然后将调用信息的索引指向最新的元素。性能相对来说比较差,经常要改变内容的话,不建议使用String
StringBuffer:字符串变量(线程安全,适用于多线程的情况下)
    字符串变量,对它进行操作的时候,不会产生新的变量,直接对原来的元素进行修改,性能比较好
StringBuilder:字符串变量(线程不安全,适用于单线程情况下)
    不能保证线程的安全性,所以在操作的时候速度最快,性能最好,但是安全性比较低.如果是单线程可以使用StringBuilder
性能上排序:
    StringBuilder > StringBuffer > String
总的来说:
    String:适用于少量的字符串操作
    StringBuffer:适用于多线程下在字符串缓冲区里面进行大量的字符串操作
    StringBuilder:适用于单线程下,在字符串缓冲区里面进行字符串的操作

常用方法查看api

多态的学习:

多态:多种状态
在面向对象的语言中,接口的不同的实现方式就是多态
多态性:允许你将你的父类引用设置成为一个或者更多的子类对象

总结就是:每种事物多种体现的形式,父类的引用指向子类的对象或者接口的引用指向实现类对象,就是多态。

对于多态的使用实例截图:

 

3月10日

 

匿名对象,内部类,修饰符的使用

匿名对象是指创建的时候只有创建对象的语句,没有把对象的地址给到某一个变量,只能使用一次完成后就消失,无法再次调用,还可以座位方法的接受的参数,方法的返回值。

内部类

<1>定义的格式
    public class 外部类{
        public class 内部类{//非静态内部类
            //其他代码
        }
    }
<2>创建成员内部类对象
    外部类名.内部类名 变量名 = new 外部类名().new 内部类名();

局部内部类:
    定义在外部类方法中的局部位置,与访问方法中的局部变量相似,可以通过调用方法进行访问
<1>定义格式
    public class 外部类{
        修饰符    返回值数据类型    方法名(参数列表){
            //局部内部类
            class 内部类{//定义在方法中的内部类,称为局部内部类,等价于方法中的一个变量
                //其他代码
            }
        }
    }

<2>访问方式
    在外部类方法中,创建内部类对象,进行访问
    ①局部内部类
    public class Party {//外部类
    public void puffBall(){//吹气球的方法
        class Ball{//局部内部类,气球
            public void puff(){
                System.out.println("将气球吹起来");
            }
        }
        //创建一个局部内部类对象,然后将这个对象包裹在一个方法中
        Ball ball = new Ball();
        //然后将类中的元素进行调用
        ball.puff();
    }

修饰符的使用: 

  class属性方法构造器游离块内部类
public
protected
(default)
private
final
abstract
static

权限的修饰符一般放于所有的修饰符前面,不同权限的修饰符不能同时使用
abstract 和 private 
abstract 和 static
abstract 和 final

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值