类是组成JAVA程序的基本元素,类封装了一类对象的属性与方法,类是用来定义对象的模板。
类的实现:类声明与类体
class People{//类的声明,People 是名
。。。。。
。。。。。
。。。。。//大括号及其包含内容是类体的内容
}
类体的内容由两部分构成:
——变量定义:用来刻画属性
——方法定义:用来刻画功能
——成员变量:变量定义部分的变量、它分为实例变量(无static 修饰)与静态变量(有static修饰
注意类推:类中的方法也分为实例方法(不加static)与类方法(加static)
——局部变量:方法体中定义变量与方法的参数
这两种变量的类型可以是JAVA中任一对象,包括基本类型与引用类型
成员变量在整个类中都有效,局部变量只在定义它的方法有效
1.对成员变量操作只能放在方法中,如
class A{
int a;
a=12;
}
此举例是非法的
但可以直接让int a=12;
2.局部变量在使用之前必须初始化或赋值,否则无法使用
如果局部变量与成员变量名称相同,则成员变量被隐藏(即失效)
举例:
class Puddy{
String name="wangcai";
void 关门放狗()
{
String name="泰格”;
System.out.println(name+",咬他!“);
}
}
只会输出泰格,咬他!
3.当方法的局部变量、方法参数与成员变量的名称相同时,如果想调用成员变量,必须使用this关键字,this 表示调用该方法的当前对象
4.声明格式
[public] [protected] [private]
[static ] [final]
public protected private 为访问控制符
static 为一个静态成员变量
final指明变量的值不能修改
5. void guan(String name){//方法的声明
System.out.println(name+",咬他”);//方法体
}
6.方法的声明包含修饰符,方法类型,方法名,参数
public static void main(String args[])
void表示该方法无返回值
7.实例方法(不加static)可以调用该类中的其它方法,而类方法(有static)只能调用该类中的类方法
8,创建对象:类名+对象名
People zhangping
为对象分配内存
——使用new运算符与类的构造方法为声明的对象分配内存
使用运算符“.",对象可以访问自己的成员变量或者调用方法
——用类创建对象时,类中的成员变量被分配内存空间这些内存空间被称为实体,而对象中存放着引用(即地址),
——System.gc()运行垃圾收集器,立即回收垃圾内存
9.参数传值必须有具体的值,参数必须实例化,在方法体中修改形参的值,不会影响实参的值,对于引用类型变量中保存的是地址,是实参对像实体的首要地址,因此在方法体中修改形参所引用对象实体的值,其实就是修改了实参对象实体的值
10.——实例方法在创建对象时才分配入口地址的,但是后面所创建对象共享第一个对象创建时生成的入口地址,方法的入口地址被所有对象共享,当所有对象不存在时,实例方法的入口地址才会被回收
11——对于类方法,入口地址在加载类中就被分配了,无论类是否创建了对象,该入口地址都可以直接使用(用类名直接调用),在程序退出时,类方法的入口地址才会被回收
12,this 可以出现在实例方法与构造方法中,但不可以出现在类方法中
例如:
类型 | private | 无修饰 | protected | public |
同一包 | yes | yes | yes | yes |
同一包中的子类 | no | yes | yes | yes |
同一包中的非子类 | no | yes | yes | yes |
不同包中的子类 | no | no | yes | yes |
不同包中的非子类 | no | no | no | yes |