1.类:
1)例子:
public class Classname {//定义类,命名不带参数,在构造方法声明时才带参
public static int a; //静态成员变量(仅方法内部使用)
public int b; //成员变量
int c; //成员变量,相当于:default int c;
private int d; //私有成员变量
protected int e; //保护成员变量
public static void setnum(arg,..){
//静态方法,且静态方法内若要使用成员变量,只能使用静态的成员变量,或者局部变量。如这里只能用 a=10;若是b=10这报错。
//该方法中不能使用this.成员变量的形式访问成员变量
//静态方法中不可以调用普通方法(即非static方法)
}
public int getnum (arg,..){
// 普通方法,可以使用this.成员变量的形式访问类内变量
//普通方法内可以调用静态方法。
return x;
}
public Classname(arg,..){
//构造函数,里面会做初始化,可以有多个构造函数(重载),创建时会根据参数匹配来调用
}
static{
//静态代码块:对象创建时在构造函数之前执行,可以有多块,并按从上到下执行(特点:没有方法名,仅用statci修饰)
//静态代码块中,只可以调用static方法,不可以调用普通方法
}
public static void main(String[] arg){
//若是可执行的java程序,main表示表示执行入口。package
}
}
补充:this符号,在类内可以使用this代替所处类,但是不能用这个方法去调用 static的成员变量
2)作用域
成员变量修饰词限定的作用域:(即能不能直接通过"Classname.成员变量"的形式访问,若不能只能通过方法来访问)
private | default | protected | public | public static | |
代码类内 | Y | Y | Y | Y | Y |
同类但是不同包 | N | Y | Y | Y | Y |
不同子类 | N | N | Y | Y | Y |
不同包且不是子类 | N | N | N | Y | Y |
private: 只能在定义时的class内部调用
defualt:只能在同包 package内使用
protected:只能在类和子类用调用
public:均可使用,但是成员变量会因对象而异,即对象间不共享。
public static :类内部共享变量,即对象间共享
方法的修饰词:(即能不能通过 Classname.function 方式调用)
public :只能通过 对象.方法 调用。也叫普通方法
static:静态块,会在调用构造函数之前,若有多个,从上到下运行。(没有方法名)
public static :类内部可以调用,且支持:类名.方法 和 对象.方法。也叫静态方法
作用域内调用方法:
成员变量类型(右) | public static | private | default | public |
类名.成员变量 | Y | N | N | |
对象.成员变量 | Y | N | Y | |
通过可以调用方法 | Y | Y | Y | |
2.语法相关知识:
1)在传递参数时,对于int、string这类只传递数据(即方法内修改不会影响传递原值),而传递对象则是传递引用(即方法内调用或者修改都会生效)。
2)成员变量声明周期是和对象挂钩,局部变量和方法挂钩,同时消亡和生成。
3)构造方法可以有多个,但是参数不一样,会根据传递的参数选择对应的构造方法。(调用时根据参数判断,进行选择方法叫做:重载)且构造函数的返回值都是void。
4)创建类时,运行优先级: 静态代码块>构造函数
5)子类:根据该类进行extend 即延伸的类