文章目录
1.类的概念
类java是基本要素,非常重要,怎么理解类的概念呢?
如果将Java程序当作一个工厂的话,那么类就是工厂里的电子设备的设计图纸,每个电子设备有其对应的属性和操作方法,而对象就是具体的电子设备,操作设备的工人知道电子设备的属性和操作方法后才能利用电子设备进行工作。
换句话说,类是创建对象的蓝图,而对象就是类的具体描述。
1.1 如何创建一个类
创建一个类需要的是用class关键字声明它,然后编写类体进行类的具体定义。
class 类名{
类体的内容
}
class是声明类的关键字,当我们声明一个类后,我们需要用一对花括号去定义一个类,在花括号里编写java代码去定义一个类。例如:
class Person{
}
1.2 如何定义一个类
在Java中,一个类的类体包括如下内容:变量,方法
1.2.1变量
变量,就是存储数据的标识符,我们可以用基本的数据类型(或复杂的引用类型)去声明一个变量,使其作为类定义的一部分。
其中变量可分为:
成员变量(实例变量:对象级别的变量 ,类变量:类级别的变量,用static修饰)
class Person{
int age;//实例变量
static String type = "中国人";//类变量
}
局部变量:方法级别的变量,局部变量的作用域只是方法
class Person{
int age;//实例变量
static String type = "中国人";//类变量
public void method(){
int num;//局部变量
}
}
1.2.2 方法
方法可分为:构造方法,实例方法,类方法(用static修饰的方法)
构造方法,用于构造对象的方法,在Java中默认提供无参构造方法,我们也可以自己编写构造方法。
实例方法就是普通的方法,只有创建了类的实例对象,通过对象进行调用。
类方法是直接可以通过类名进行调用的方法。
class Person{
int age;//实例变量
static String type = "中国人";//类变量
//构造方法,注意它的写法
//构造方法是一个类的必要属性之一
public Person(){
}
//实例方法
public void method(){
int num;//局部变量
}
//类方法
public static void method2(){
}
}
2.对象
通过类的学习,我们知道了类是构建对象的蓝图,下面我们学习如何使用类来构建对象并进行使用。
类名 对象名;
对象名 = new 类名();
//上面的是对象的创建,下面是对象的使用
对象名.变量名
对象名.方法()
问:除了new的方式,还有那些方式可以得到一个实例对象?
1)clone方式(克隆)(原型模式,了解即可)
2)newInstance方式(反射机制,了解即可)
3)反序列化方式(序列化机制,了解即可)
4)对于final类可以直接赋值得到,例如String直接就可以String s=“dfadf”
5)通过对象工厂获取(工厂模式,了解即可)
这样我们就生成了一个对象实例。
3.类定义使用实例
下面我们写了一个名为Computer的类,然后在类ObjectStudy中用它生成了实例并使用实例对象达到我们的目的。
/**
* 此类展示对象操作。
*/
public class ObjectStudy {
public static void main(String args[]){
Computer com = new Computer();
int m = 100;
int n = 200;
int result = com.add(m,n);
result = com.add(120+m,n*10+8);
System.out.println(result);
}
}
class Computer{
int add(int x,int y) {
return x+y;
}
}
运行结果:
4.理解类和对象的关系
4.1.一个java程序和类之间的关系
我自己的理解来看:如果把java程序看做一个工厂的话,类就是工厂里的电子设备的设计图纸,电子设备有其对应的属性和操作方法,而对象就是电子设备的实体,控制设备的工人知道电子设备的属性和操作方法后才能利用电子设备可以生产出产品。
5.细节知识分析
5.1.类与类的关系
我个人认为类分为主类和子附属类(相当于一个公司的boss和员工,而这个关系是逐级递分的,就是说子附属类的下级可以有子子附属类),主类是最终要运行的那个类,它一般是决策类。主类和其子类的组成的工程的类层次结构。
5.2.变量和变量区别
实例变量:简单来说就是方法外,类里声明的变量,它作用于对象级别
局部变量:简单来说就是方法内声明的变量,它作用于方法级别
类变量:用static修饰的方法外,类里声明的变量,它作用于类级别
在方法体里的局部变量优先级高于成员变量(如果出现局部变量和实例变量同名的情况)
5.3.方法的区别
方法分为构造方法,实例方法,类方法:
**构造方法:**是类中的一种特殊的方法,当程序用类创建对象是需要使用它的构造方法。构造方法没有类型,它的名字和其类名完全相同。如果没有写,编译器会自动给一个空的构造方法。
**实例方法:**实例方法具有入参,出参,方法名等结构,它代表一个实例的能力,通常用来定义业务处理逻辑。
**类方法:**类方法就是用static修饰的实例方法,它代表一个类的能力,通常用来定义算法类的方法。
5.4.类方法和类变量的特点
类方法和类变量拥有各自独自的内存空间,且只有一个。
关于方法的具体分析在下一篇博客会详细说明。