【java基础】第三章 java类与对象,
【java基础】第三章 java类与对象,
#类的定义形式:[public] [abstract|final] class classname {
//定义变量成员
//定义方法成员
}
#变量成员定义形式:[public|protect|private] [static] [final] [transient] [volatile] type variableName
#引用对象成员形式:使用点;
#方法成员定义形式:[public|protect|private] [static] returnType methodName ([paramList]){}
#方法名和参数列表唯一表示某个方法;
#创建类对象:ATypeName a=new ATypeName ();
#static 修饰成员和类相关,不是和具体对象相关。
静态成员变量也称为类变量,由多个对象实例共享一个内存区,共享一个值,类变量不仅可以通过对象访问,也可以通过类名直接访问。(类名.类变量名)
非静态变量也称为实例变量,有各自的内存区。
静态成员方法也成为类方法,类方法中不能使用this或super。
非静态方法成员称为实例方法;
#访问控制符修饰的成员变量访问权限:
同一个类中 | 同一个包中 | 不同包中的子类 | 不同包中的非子类 | |
public | 可以 | 可以 | 可以 | 可以 |
protect | 可以 | 可以 | 可以 | |
默认(包) | 可以 | 可以 | ||
private | 可以 |
#成员初始化顺序:按定义顺序在方法调用之前初始化
#Object类是所有java类的基类,可以使用类型为Object的变量引用任意类型的对象。
如果要对Object类的变量进行任何专门操作,都需要知道他们的原始类型并进行类型转换。
Object obj=new MyObject (); //低等级类型自动转换为高等级类型
MyObject x=(MyObject)obj; //高等级类型需要强制类型转换
#System.err打印红色字体到控制台
#String类
String类中每一个看起来会修改String值的方法实际上都是创建了一个全新的Sring对象,以包含修改后的字符串内容,并未改动最初的String对象,只是不能再访问这个对象了;这是String类一个重要特点,代表不可变字符串。
public class Test{
public static void main(String []args){
String s1="hellow";
String s2="world";
String s3="hello";
System.out.println(s1==s3); // true 引号生成字符串存储在常量池中
s1=new String("hello");
s2=new String("hello");
System.out.println(s1==s2); // false 构造方法生成对象存储在堆中
System.out.println(s1.equals(s2)); //true
}}
静态方法valueOf()将其他类型转换为字符串。
split()方法将一个字符串按照一个分隔符进行分隔,返回分隔后的字符串数组。
public class Test{
public static void main(String [] args){
int j=1234567;
String sNumber=String.valueOf(j);
System.out.println(sNumber.length()); //7
String s="Mary,F,1976";
String [] sPlit=s.split(", "); //以“ ,”为分隔符返回三个字符串的字符串数组
for(int i=0;i<sPlit.length;i++){
System.out.println(sPlit[i]); //Mary F 1976
}
}
}
#StringBuffer类和StringBuilder类
String对象一经创建,他的值就确定了,而对于StringBuilder类或StringBuffer类,可以向其中添加插入追加新的内容。
eg. 有代码:String text=“ ”;
int i=0;
text=text+i;
在java中text=text+i;是通过下面方式实现的:
StringBulider builder=new StringBuilder(text);
builder.append(String.valueOf(i)):
text=builder.toString();
StringBuilder和StringBuffer功能上相同,StringBuffer是线程安全的,StringBuilder类被设计成StringBuffer的一个简易替换,用在字符串缓存区被单个线程使用时(很普遍)。建议优先采用StringBuilder类,大多数情况下比StringBuffer类块。
#多次调用一个方法:obj.f().f().f()...
相关文章
- 暂无相关文章
用户点评