计算机中的对象:
计算机中的对象是将复杂的客观事物,在计算机中的表现形式
对象的组成:
属性,代表对象有什么,静态部分
方法,代表对象能做什么,动态部分
在计算机中使用类来描述对象
什么是类?
- 类是对象共性的抽象
- 客观对象在人脑中的主观反映, 或者说类是人对对象的认识
- 类是对象的模板
- 对象是类的实例
假如说 一条狗,你第一想到的是什么,(四条腿,有尾巴,会叫)
这就是人脑的主观反映,狗就是一种类,种类。
如何编写一个类:
一个源文件中可以写多个类,但只能写一个公开类,公开类类名要和文件同名
属性: 其实就是定义变量
局部变量:定义在方法内部的变量,就叫局部变量,包括方法的形参;
先赋值,后使用
定义开始,到定义的代码块结束
类的组成:
属性:成员变量
定义在类的内部,方法外部
语法:数据类型 变量名 = 变量值;
属性的默认值:
数值类型:0 | 0.0
字符:’\u0000’
布尔类型:false
对象(引用)数据类型、String :null
成员变量 和 局部变量 的区别
定义位置 类以内,方法以外 方法内部
作用范围 本类有效 定义行开始,到所在的代码块结束
默认值 具有默认值 没有默认值,必须先赋值后使用
命名冲突 局部变量优先 相同作用范围内 不允许命名冲突
实例变量:
1, 有默认值
2, 作用范围,至少是全类的内部
3, 实例变量和局部变量可以命名冲突,冲突的时候局部优先,两个局部变量不能命名冲突
Public class TestClass{
}
Class Student{
String name;
Int age;
Double score;
}
局部变量和实例变量的区别:
方法:成员方法
static:不是方法的要求
定义在类的内部,其他方法外部
语法:
public 返回值类型 方法名(形参列表){
//方法的实现
}
方法的声明:对象能做什么(声明比实现更重要)
修饰符 返回值类型 方法名(参数表) 抛出的异常
修饰符可有可无,不分前后,修饰符在前,返回值在后。
方法的实现:对象怎么做
什么是方法的重载(overload):
在同一个类中定义多个名字完全相同的方法
要求:参数列表不同,与返回值类型无关
参数类型,参数个数,参数顺序
编译器会根据传入的实参来匹配类中对应的方法
如果能够精确匹配,就精确匹配;若不能精确匹配,就近向上匹配
但是需避免混淆
方法重载的好处:提高代码的灵活性,屏蔽了差异
下面展示一下重载的使用:
class TestOverlode{
public static void main(String[] args){
A a = new A();
//a.m1();
//byte b = 10;
//a.m1(b);
a.m1(10,20.0);
a.m1(20.0,10);
a.m1(10.0,5);
}
}
class A{
public void m1(){
System.out.println("无参");
}
public int m1(int a){
System.out.println("int...");
return 10;
}
public int m1(short a){
System.out.println("short...");
return 10;
}
public void m1(int a,double b){
System.out.println("int ,double ...");
}
public void m1(double b,int a){
System.out.println("double ,int ...");
}
public void m1(String s){
System.out.println("String...");
}
}