类变量和实例变量
用关键字static修饰的成员变量称作静态变量或类变量,类变量是与类相关联的数据变量
类的所有对象共享类变量
class A{
float x;//实例变量
static int y;//类变量
}
实例变量仅仅是和相应的对象关联的变量
不同对象的实例变量互不相关,即分配不同的内存空间
常量
用关键字final修饰的成员变量为常量
class A{
float x;
final int MAX=20;
}
final修饰的成员变量不占用内存,这意味着在声明final成员变量时,必须要初始化。
对于final修饰的成员变量,对象可以操作使用,但不能做更改操作。
不一定是静态变量,加上static 就是了
方法
float area (int a, int b ) (int a,b叫做参数列表)
方法体中声明的变量以及方法的参数称作局部变量,局部变量仅仅在该方法内有效。
方法的参数在整个方法内有效,方法内定义的局部变量从它定义的位置之后开始有效。
方法的分类
构造方法:用来创建对象
实例方法
类方法:用关键字static修饰的方法
实例方法可以调用该类中实例方法或类方法
类方法只能调用该类的类方法,不能调用实例方法,
实例方法可以操作实例变量和类变量
类方法只能操作类变量,不能操作实例变量
实例方法必须通过对象来调用
类方法可以通过类名调用
方法 重载
方法重载是指一个类中可以有多个方法具有相同的名字,但这些方法的参数必须不同
参数不同:参数的个数、类型不同
方法的返回类型和参数名字不能作为比较依据
也就是说 public run(int a)和public run(int b)是错误的重载
构造函数的重载的作用:多种方式创建对象
例子:
注意这是整个java代码,文件名字是testone.java,psvm要包括在一个classtest类里面
package revive;
class testone {
int area(int x, int y) {
return x * y;
}
double area(double x, double y) {
return x * y;
}
}
class test {
public static void main(String[] args) {
testone a = new testone();
System.out.println(a.area(20, 20));
System.out.println(a.area(1.1, 2.2));
}
}
关键字this:解决成员变量和局部变量重名的问题
使用this区分成员变量和局部变量:
参数是局部变量,
void setSide(float sideA,float sideB,float sideC) {
this.sideA=sideA; //使用this区分成员变量和局部变量
this.sideB=sideB;
this.sideC=sideC;
}
包
ava提供一种有效管理类的机制,包是类、接口或子包的集合
package 语句指明该源文件定义的类所在的包,一般格式为:
package 包名;
== package 包名.子包名.…….子包名;==
例子 在两个不同的包,一个red.java建一个类red,另一个testred.java调用red的方法
testred.java
可以看到需要写import 包名.类名
red类必须是Public class{
ackage revive;
import chaxun.red;
public class testred {
public static void main(String[] args) {
red red1=new red();
System.out.println(red1.geta());
}
}
导包
导入一个包中的所有类(星号)
import java.awt.*;
导入一个包不会自动导入它的子包,因此,
import java.awt. ✳;
import java.awt.event.;
类的访问权限
类A中的private成员:
在另外一个类B中用类A创建一个对象后,
该对象不能访问自己的private成员
类A的类体的方法中可以访问自己的private成员
类A中创建类A的对象时可以访问自己的private成员
public:
类A中的public成员:
在另外一个类中用类A创建一个对象后,
该对象可以访问自己的public成
protect:
类A中的protected成员:
在另外一个类B中用类A创建一个对象后,
若类B与类A在同一个包中,
该对象可以访问自己的protected成员
友好(啥也不写):
类A中的友好成员:
在另外一个类B中用类A创建一个对象后,
若类B与类A在同一个包中,不在同一个包不行,见red例子
该对象可以访问自己的友好成员