java面向对象
面向对象程序设计OOP( Object Oriented Programming)
对象的特征——属性
对象的每个属性都有特定的值
对象的操作——方法
对象:描述客观事物的具体实体
类class(自定义数据类型)引用数据类性:
一组具有相同属性的对象集合
是对象的抽象,对象是类的具体
public class Scanner{
…}/jdk自带的类/
Scanner input =new Scanner(System.in);
public class 类名{//类名:帕斯卡命名规则
//定义属性部分(成员变量)
//方法(成员方法)
}
使用对象的步骤
创建对象:类名 对象名=new 类名();
School center=new School();
引用对象成员:使用“.”
引用对象的类的属性:对象名.属性
center.name="ycxy"
引用对象的类的方法:对象名.方法();
center.show()
类的成员变量可以赋初值,也可以不赋值,如果不赋值默认初始化值
画类图的工具:Rose,Visio
equals()方法:判断两个对象是否相等相等返回Ture,不相等返回False
类和对象的进阶
编写类
使用编写的类创建对象
方法的编写实现
类的方法
访问修饰符 返回值 方法名(){
方法体
}
public void show(){
}
void:无返回值
有返回值:返回值类型
return 返回值
参数
方法名()无参方法
public void show(){
}
方法名(参数)带参方法
public void show(int i,string s){
return;//结束方法
}
(1)方法有没有参数和返回值,是两码事,毫无相关
(2)带参方法,参数个数可以有一个,也可以有多个,多个参数之间用逗号隔开
(3)带参方法,参数名字可以随意取,符合变量命名规则
(4)方法定义处的参数是形式参数
方法调用处传的值是实际参数
(5)形参和实参的名字可以不一样,但类型要一样,顺序也要一样
方法的调用
直接调用
new对象调用
对象数组 student[] stus=new Student[5];
NullPointerExaption空指针异常(对空的对象进行操作)
方法的传参
参数类型如果是基本数据类型
int char double char boolean float(传递的是值(拷贝))导致参数的变化和实参无关
参数如果是引用类型
String 数组 自定义数据类型{传递的是地址形参和实参指的是同一个对象,形参的变化影响了实参(实参也变了)}
问题总结:
1.text在public static void main(String[] args)中只能使用静态变量,所以创建的对象要在main方法中
2.成员变量数组添加时形参是具体的对象
public class contest {
int score;
}
contest c1 = new contest();
public void addcontester(contest c1) {
for (int i = 0; i < coer.length; i++) {
if (coer[i]==null){
coer[i] = c1;
break;
}
}
}
3.注意break的位置和对for循环的工作过程影响
Student stul=new Student();
stul.**
(1)Student()应该是个方法,但这个方法比较特殊,方法和类名一样。首字母大写。
(2)构建多个成员变量对象时,每一次都要new一个对象,然后对象属性赋值 ,比较繁琐。
this 的使用
this .showinfo();调用同一类下的普通方法
调用属性 this.name=“大黄”;
本类调用构造方法 this(“小黑”,100,100,"雄“);//要写在第一句
方法重载
同一个方法不能在一个类中重复出现
特点:这几个方法在同一个类里
方法名字相同,方法的参数项(方法个数不同或参数类型不同)不同
成员变量和局部变量
成员变量:在类的范围里声明,在类的整个范围都有能用,也叫做全局变量。没有赋值系统默认初始化(int 0)。
局部变量:在局部声明(方法里,代码体里),只能在声明的地方使用,在使用前必须赋予初始值。
EHZLP-1719907877147)]
特点:这几个方法在同一个类里
方法名字相同,方法的参数项(方法个数不同或参数类型不同)不同
成员变量和局部变量
成员变量:在类的范围里声明,在类的整个范围都有能用,也叫做全局变量。没有赋值系统默认初始化(int 0)。
局部变量:在局部声明(方法里,代码体里),只能在声明的地方使用,在使用前必须赋予初始值。
局部变量可以和全局变量同名也可以不同名,同名的时候就近使用。