JAVA菜鸟入门(10) 类初始化, 字符串比较equals() v.s. ==, Casting, ArrayList注意

一. 类的初始化

第一种
更推荐, 可以简化或者省略构造函数,代码简洁
第二种 

public class WeatherForecast{
private String skies = "";
private int high = 0;
private int low = 0;

public void setSkies(String a) {
skies = a;
}

public void setLow(int a) {
low = a;
}

public void setHigh(int a) {
high = a;
}

public String getSkies() {
return skies;
}

public int getHigh() {
return high;
}

public int getLow() {
return low;
}
}

public class WeatherForecast{

public WeatherForecast(){
skies = "";
high = 0;
low = 0;
}

public void setSkies(String a) {
skies = a;
}

public void setLow(int a) {
low = a;
}

public void setHigh(int a) {
high = a;
}

public String getSkies() {
return skies;
}

public int getHigh() {
return high;
}

public int getLow() {
return low;
}
}


在类中的调用父类进行初始化
public MP3Phone(String a, int b, boolean c) {
    super(a, true);
    memorySize = b;
    playsAAC = c;
}

二. 数组的初始化
1 字符串数组
String [] week = { "mon", "tue", "wed", "thu", "fri", "sat", "sun"};


三.  字符串的比较
== tests for reference equality. while.equals() tests for value equality.
equals进行取值的比较,==比较是否是相同的object。
String s33= new String("hello");
String s34= new String("hello");
System.out.println(s33==s34);// false 因为是不同的object被初始化了。
System.out.println(s33.equals(s4)); // true 因为值相等
所以, 比较字符传取值是否相同,用的是equals( ).
但是注意这里, 
String s31 = "hello";
String s32 = "hello";
System.out.println(s31==s32); // true 因为指向了相同的string liberal,是内存中的相同的常量


四. casting
Casting
int a = 3;
int b = 7;
float c =(float) a / b;  // 或者这么写float c =((float) a / b);
System.out.println(c); // 0.42857143



五. ArrayList
类似C++中的vectorThe ArbrayList is an abstraction for an automatically growable List of elements.
源码 学习到的一些比较不熟悉的函数

retainAll( )
        // Add some elements to lList:
       lList.add("Isabella");
       
lList.add("Angelina");
       
lList.add("Pille");
       
lList.add("Hazem");

       
// Add some elements to aList:
       
aList.add("Isabella");
       
aList.add("Angelina");
        aList.add("Bianca");      

       lList.retainAll(aList);  //The aList collection after: [Isabella,Angelina, Bianca]

ArrayList是包装后的T[ ] array

类似C++中的vector

method只有ArrayList.size()和ArrayList.trimToSize(),所以无法直接查看Capacity().

因为ArrayList的capacity会动态增加,所以你可以认为ArrayList类似一个unbounded size的list。但是ArrayList的
equals()
            public boolean More ...equals(Object anObject) {
       
if ( this == anObject) {
        return true;
                }
                if (anObject instanceof String) {
                    String anotherString = (String)anObject;
                   
int n = count;
                   
if (n == anotherString.count) {
                       
char v1[] = value;
                       
char v2[] = anotherString.value;
                       
int i = offset;
                       
int j = anotherString.offset;
                       
while (n-- != 0) {
                           
if (v1[i++] != v2[j++])
                               
return false ;
                        }
                       
return true ;
                    }
                }
               
return false ;
            }








评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值