java中类有关的知识探索(如有误待指正)
注意:本笔记中【】 表示的是 需要要自己写的内容
类
什么是类?
-
类是一种数据类型,由属性和方法构成
-
属性 用各种类型的变量来表示
-
方法 java中所有的方法都有()
- 方法也可以称为 函数,如果硬要区分方法和函数的话 ,无参数的叫做方法 有参数、返回值的叫做函数
【修饰符】 【返回值类型】 【方法名】(【参数1类型】 参数1 ,【参数2类型】 【参数2】...){ 【方法体 注意:方法体是写在{}里面的】 }
-
-
是对同种类型的事物 的 共有属性和功能的 抽象
-
类和对象之间的关系
- 类就相当于是设计图
- 对象相当于是根据这个设计图制造出来的一个又一个产品
java中定义类
类的命名规范
- 大驼峰命名法命名 (每个单词的首字母大写)
public class 【类名】
/*
*类名需要大驼峰命名法命名 比如 "狗演示" 类定义时须写成 public class DogDemo{}
*/
实例化类(用类创建对象)
-
实例化类 就是用这个类 去构建其对象的过程
-
类的构造函数
- 在用类创建对象时,系统就会调用类的构造函数
- 构造函数不能有返回值,也不能有返回值类型
- 一个类可以有多个构造函数,调用时只会调用指定的构造函数, 不同构造函数的参数类型 或 参数数量不同
//多个构造函数的情况 如下 1 2 3 4 定义在一个类 是可以的 1.【类名】(){}//不含参数 2.【类名】(int x){}//和 1 相比有参数 3.【类名】(int x ,int y){}//和 2 相比参数数量不同 4.【类名】(String x){}//和 2 相比参数类型不同 5.【类名】(int y){} //注意! 这种和 2 是相同的, 虽然参数名不同 但其代表的都是 这个构造函数 有一个整型的参数
- 调用构造函数对类进行实例化
1.【类名】 【对象名】 = new 【类名】() //对象名要用小驼峰命名法 2.【类名】 【对象名】 = new 【类名】(int x); 3.【类名】 【对象名】 = new 【类名】(int x ,int y); 4.【类名】 【对象名】 = new 【类名】(String x);
成员变量
- 类变量和 实例变量,都称为 成员变量
//后面的【类名】 我用ClassName来表示,以规范命名
//后面的【变量名】 我用 variable name来表示,以规范命名
public class 【类名】{
static String VARIABLE_NAME; //这种叫类变量,有static 修饰符,并且需要全部大写
String variableName;//这种叫实例变量,没有static 修饰符 ,采用小驼峰命名法
}
- 成员变量
类变量
- 类变量,需要用static 修饰符 ,但是没有final修饰符,类变量名需要全大写,两个单词之间用_连接
//后面的【类名】 我用ClassName来表示,以规范命名
//后面的【变量名】 我用 variableName来表示,以规范命名
public class ClassName{
static int VARIABLE_NAME;//类变量有static修饰符,变量名需要大写
}
- 类变量的引用,直接用 【类名】.【变量名即可】
int x = ClassName.VARIABLE_NAME; //定义一个变量x,将类变量赋值给x
成员属性
- 成员属性
- 需要用private 修饰,并且必须要 有其对应的get 和 set方法
//后面的【类名】 我用ClassName来表示,以规范命名
//后面的【变量名】 我用 variable name来表示,以规范命名
public class ClassName{
//成员属性定义
private String varialbeName;
//成员属性的 get方法
public String getVariableName(){
return this.variableName;
}
//成员属性的 set方法
public void setVariableName(String str){
this.variableName = str;
}
}
常量属性
常量需要用final来修饰,在定义时就需要赋值,并且不能进行修改,大写命名
//后面的【常量名】 我用CONST_NAME来表示,以规范命名
public class Test {
public final int CONST_NAME = 10;
}
成员方法
- 类方法和 实例方法,都称为成员方法
//后面的【类名】 我用ClassName来表示,以规范命名
public class ClassName{
//后面的【方法名】 我用methodName来表示,以规范命名
public static classMethodName(){}//类方法, 调用时可以直接使用类名调用
public void methodName(){}//实例方法 无返回值 无参数
public void methodName2(int x){}//实例方法 无返回值 有一个整型参数
public void methodName3(int x,int y...){}//实例方法 无返回值 有多个整型参数
public int methodName4(int x,int y...){//实例方法 有整型返回值 有多个整型参数
...//这里是解决某具体问题需要执行的代码(即这个函数 怎样解决问题) 所有方法的{}中都放需要执行的内容
return 【整数】;
}
public String methodName5(int x,String y...){//实例方法 有字符串返回值 有多个不同类型的参数
...//这里是解决某具体问题所需要执行的代码
return 【字符串】
}
}
实例方法的调用
- 【对象名】.【方法名】(参数1,参数2…)
//后面的【类名】 我用ClassName来表示,以规范命名
//后面的【对象名】 我用objName来表示,以规范命名
//后面的【方法名】 我用methodName来表示,以规范命名
//后面的【参数名】 我用value来表示
ClassName objName = new ClassName();//调用构造方法 实例化一个类
objName.methodName(value1,value2....)//用对象 来调用类中的实例方法
类方法
- 需要用static修饰,可以用类名直接进行调用
public static classMethodName(){ }//类方法, 调用时可以直接使用类名调用
//调用时
ClassName.classMethodName();
局部变量
- 局部变量,就是在 方法体 中定义的变量
- 其只能在 自身所在 的 方法体 中使用,在 其所在的方法外 无法使用
public void methodName(){
int x;
//这种的就叫局部变量,他是定义在某个代码块中的,只能在当前的代码块中被使用
// 我把{} 括起来的 称为 代码块
x=10;//在这里是可以使用的
}
//x=10;在这里是无法使用的