Java学习笔记3
1.类中方法一些注意事项
- 在Java中,类是一等公民,所有的方法都在类中,方法调用时类必须实例化(static的可以不用);
- static方法只能访问static方法和属性,调用时可由类本身或对象实例来调用(最好用类本身);
- Java方法的传参方式只有一种,值传递;
- 在本类中一个方法调用另一个方法,由于必须实例化,要用this,但Java规定this可以省略;
- Java中只有两种数据类型:基本数据类型(存放在内存栈)和引用型(引用在内存栈,实例在内存堆);
public class Test01 {
public static void main(String[] args) {
new Dog().move();//非static方法调用必须实例化
int a=Dog.nums;//static属性用类调用
int b=Dog.get_dognums()//static方法用类调用
}
}
class Dog
{
public static int dog_nums;
public int age;
public int name;
static int get_dognums()
{
return dog_nums();
}
public void jump()
{
System.out.println("我会跳");
}
public void move()//课本p80
{
this.jump();//也可以写作 jump();
}
}
2.引用类的创建细节
具体过程如下图所示:
其中dog是引用变量的声明,new Dog()是创建过程,引用相当于C语言中的指针。此时如果让另一个变量dog1也赋值dog,即指向同一块内存。
3.类的成员变量
- 类的成员变量包括类变量和实例变量,类变量有static修饰。
- 类变量是所有实例共享的,属于本类;实例变量只属于本实例;
- 成员变量无需显示初始化,只要为一个类定义了类变量或实例变量,系统会自动初始化(一般数值初始化为0,boolean初始化为false,引用类初始化为null);但局部变量必须初始化。
下面是成员变量初始化时在内存中的运行机制(以Person类为例):
class Person{
int age;
String name;
static int person_num;
public static void main(String[] args) {
Person p1=new Person();//第一句
Person p2=new Person();//第二句
Person.person_num=3;//第三句
}
}
第一次使用类时要先加载,在堆内存中创建一块类空间,分配给类变量,之后的创建实例过程如图。
4.包package
- 位于包中的每个类的完整类名都应该是包名和类名的组合,我们经常写的简单程序不需要引入包的原因是系统默认引入java.lang包下的所有类。
- 引入包(import XXX)(import XXX)
import java.util//引入java.util包下的所有类
import java.util.Arrays//引入java.util包下的Arrays类
import static com.*//引入包com的全部静态成员
import static com.Person.person_num//引入包com包下Person类中的person_num
- java常用包
java.lang
java.util
java.net
java.io
java.text
java.sql
java.awt
java.swing