目录
类
概述:
一个java文件中的内容大多都写在类中,类可以说是构成了一个文件的最外层框架。
一个java文件中只能有一个public类,该类的名称一定是文件名称。
一个java文件中可以有多个非public类。
代码演示:
//public类
public class NAME{ //public类名称为.java的文件名称
public static void main(String[] args){ //main方法
}
}
/*
非public类。一般格式如下
访问修饰符 class 类名称{
......;
}
java的访问修饰符有四种,其中两种分别是pyblic和默认类型
什么也不写的类,就是用了默认类型的访问修饰符。
我们写非public类暂时使用默认类型,另外两种类型以后再讲
*/
//不含main方法,无法主动执行
class test1{
......;
}
//含main方法,可以主动执行
class test2{
public static void main(String[] args){
......;
}
}
成员变量
成员变量=属性=字段(field)。这些是不同的称呼而已
成员变量是存在于类中的变量,类似于c语言中结构体的成员变量。
代码演示:
public class NAME{
public static void main(String[] args){
test1 t1 = new test1();
t1.a=6;
t1.b=5.20;
t1.c="good";
}
}
class test1{
int a;
double b;
String c;
}
成员方法
一个类中只能有一个main方法。(类似于c语言中的函数)
main方法是jvm执行代码时的入口,如果一个类中没有main方法,则无法被主动执行,只能通过被调佣执行。
这是因为,java代码只能被转化为.class文件后才能通过虚拟机执行。只有当一个类中含有main方法,或者没有main方法但是被调用过后,才会产生该类相应的.class文件,而后jvm才能执行该文件。
一个类中允许有n个方法。方法在同一个类内时可以直接调用,调用其他类中的方法需要通过对象进行调用。
成员方法一般格式
访问修饰符 返回类型 名称(形参){
方法体;
// return......; 如果返回类型是void就不用return
}
class test{
int a; //属性
public void demo(){
......;
}
}
方法不能进行嵌套
一个类中可以有多个方法,而且可以有很多个public类型的方法。访问修饰符主要是规定了方法的适用范围,这个等我学到后面再详讲。
对象
我们创建对象用来调用其他类中的属性或方法。
代码演示
public class first{
public static void main(String[] args){
/* test n;
n=new test();
new的时候才表示给变量分配空间,可以先声明后创建,也可以直接创建 */
test n=new test();
n.a=6;
n.b='b';
n.t1(n.a,n.b);
}
}
class test{
//两个属性(成员变量)
int a;
char b;
//成员方法
void t1(int a,char b){
System.out.println("调用test的方法t1");
System.out.println("test的属性a=" + a);
System.out.println("test的属性b=" + b);
}
}
注意
在一个类中,成员变量和成员方法是互不影响的。假如一个类的一个方法中的一个变量,跟该类中的一个成员变量重名,那么这两个变量是不同的变量,他们在堆内存中有不同的内存地址。
class test{
int a;
public static void main(String[] args){
int a;
}
//这两个变量a是不一样的。具体体现在生存期和作用域不一样
总结
一个java程序主要由类组成,类中一般包含属性(也叫成员变量)和方法,可以通过创建对象来调用其他类。在idea中,含有main方法的类可以直接生成.class文件,不含main方法但被调用后会生成 .class文件,在执行代码的时候jvm会寻找main方法作为执行入口,所以有main方法的类才能主动执行,没有main方法的类只能被调用执行;属性是变量,方法相当于函数,属性和方法是两块不同的内存空间,不会产生冲突;一个类可以通过创建对象来调用另一个类中的属性和方法,在同一个类中则可以直接使用自己的属性和方法。