一.对象引用是变量值
1.声明一个引用变量
Dog MyDog //书中类比为遥控器
Java虚拟机分配空间给引用变量,命名为MyDog
2.创建对象
new Dog()
分配堆空间给新建的Dog对象
3.连接对象和应用
Dog MyDog =new Dog()//设定遥控器
二.一些容易搞混的细节:
Book b=new Book();
Book c=new Book();
Book d=c;//c与d引用到同一对象
c=b;//c指向b的对象
Book b=new Book();//对象1
Book c=new Book();//对象2
b=c;//对象1被抛弃回收
c=null;//null值赋给c,对象2依然被引用到
三.Java通过值传递即拷贝传递
public class test {
void bar(int x)
{
x=0;
}
}
public class TT{
public static void main(String[]args)
{
test t=new test();
int x=10;
t.bar(x);
System.out.print(x);//10
}
}
四.实例变量有默认值,局部变量使用前要初始化
五.String转int
Integer.parseInt("3")
2020-02-07
public class A {
public int id;
A()
{
}
A(int i)
{
id=i;
}
public void eat()
{
System.out.print("A");
}
}
public interface C {
public abstract void play();//相当于100%的抽象类
}
package bound;
public class B extends A implements C{//继承类只有一个,接口不限
private String name;
B()
{
}
B(int i,String m)
{
super(i);
name=m;
}
public void eat()
{
System.out.print("B");
}
public void play()//必须实现方法
{
System.out.print("play");
}
}
public static void main(String[]args)
{
ArrayList<A>array=new ArrayList<A>();
B t=new B(1,"2");
System.out.print(t.id);//1
array.add(t);
A b=array.get(0);//array出来的都是A对象
}
抽象的类可以有抽象和非抽象方法
如果类带有抽象方法,表示为抽象类
抽象方法没有内容,以逗号结尾
重构要求参数不同,返回类型没有要求,不涉及继承关系
静态变量在该类的任何对象创建前完成初始化
静态变量在该类的任何静态方法创建前完成初始化
静态的final变量是常数
public static final PI=3.14158265;
非静态方法不能调用静态变量,静态方法可以存取非静态变量