一、类和对象的基本概念
首先什么是对象呢?可谓是万物皆对象,对象是客观存在的事物,可以说任何客观存在的都是可以成为对象,一台电脑,一直钢笔,一个人,一辆轿车等等,都是可以成为对象。
那么什么是类呢?类是对象的模子,具有相同属性和方法的一组对象的集合,类是不存在的,是用来描述对象信息。在计算机的世界里面,计算机关注的事数据信息,我们描述数据信息的时候一定要要描述数据类型,对象就是具体的数据信息,类是信息的数据类型。
对象的属性和方法分别表示什么呢?属性是表示对象有什么,方法是表示对象能干什么。
在类中定义的变量是成员变量,成员变量又称为静态变量和实例变量,静态变量是用static修饰的变量,实例变量也成为是对象变量,类变量,通过对象的引用来访问实例变量。
在方法中定义的变量是局部变量,他们只存在在{}之间,无法再{之外进行一些操作,比如读取数据,赋值等等。
二、类与对象的定义与使用
1.创建类的语法:
class 类名称 {
成员变量/ 实例变量;
成员方法;
}
2. 创建具体的对象:
类名称 引用名称 = new 类名称()
Person per = new Person();
这个对象的引用 对象(在堆中储存)
(相当于给对象起了个名字)(所有类的对象都是引用数据类型)
3.范例(创建一个Person 类的对象)
public class Test {
public static void main(String[] args) {
//创建一个实例化对象
Person per1 = new Person();
//通过对象来调用实例变量、成员方法
per1.name = "小韩";
per1.age = 18;
per1.sex = "女";
per1.print();
Person per2 = new Person();
per2.print();
}
}
class Person{
//成员变量(实例变量),在堆中的每个对象中存储,通过对象调用
String name;//默认值为null
int age;//默认值为0
String sex;//默认值为null
//成员方法(实例方法),在JVM的方法区中存储,通过对象调用
void eat(String food){
System.out.println(name+"正在吃"+food);
}
void print(){
System.out.println("name:"+name+", age:"+age+", sex:"+sex);
}
}
输出结果:
注意事项:
在Java中一个源文件(*.java)只可以存在一个主类(public class)
类的命名规则:使用有意义的大驼峰单词命名法,每个单词的首字母都要大写
类中定义的成员变量都有默认值
关于引用数据类型的特殊值 null:null在Java中表示“空引用”,即只有名字,没有任何对内存中的地址,如果直接使用值为null的引用,去操作(使用.操作符)任何属性或者方法(成员变量、成员方法),都会报错。 如:空指针异常
//sex的默认值为null
//sex.length()
System.out.println(per2.sex.length());
三、static关键字
(一)static修饰属性(类属性、类变量)
1.当一个实例变量被static关键字修饰后,它就表示类的属性,该类的所有对象共享此属性,且对象的属性值相同。static修饰的属性在JVM的方法区中存储。
2.static修饰的属性,直接通过类名称就可以访问,无须通过对象。
public class staticTest {
public static void main(String[] args) {
Person per1 = new Person();
Person per2 = new Person();
per1.name = "小韩";
per1.age = 18;
per1.print();
per2.print();
Person.country="日本";
per1.print();
per2.print();
System.out.println(Person.country);
}
}