Day_5面向对象
通过类的方式,来组织代码,以对象的方式,封装数据
1、 对象:具体的事物(属性(变量):区分其他对象,行为(方法):对象的功能)
类:对对象的抽象,就是java在堆内存中new建立的实体。
2、消息:对象之间通过消息联系(程序中调用相关方法)
目的对象(传递的对象) 方法的名称(调用的方法)方法参数(执行效果不同)
1)一个对象可以接收多个消息,响应不一样
2)相同消息给不同对象,所做的响应不同
3)发送方不需要知道接收方如何对请求予以响应的。
3、面向对象的特性:
封装:隐藏底层的实现细节,对于操作人没有影响。
继承:(更好地进行抽象与分类,减少代码和数据的冗余,实现代码的复用,提高可维护性)
子类继承了父类的所有属性(特殊与一般的关系)
有特殊关系的时候(老师和人),可以使用继承。Cpu和电脑,就不能继承,值属于一部分。
多态:多种形态,必须先实现继承,才能实现继承
类:
public classPersonTest05 {
int age;
Stringname;
int weight;
//PersonTest05[] person=new PersonTest05[100];//通过绑定就以上属性
public static void main(String[] args){
//创建一个对象
int x=5;
//new PersonTest05()创建真正的对象,并将起始地址返回给person变量
PersonTest05person=new PersonTest05();//person只是引用,指向堆上真正的对象
//通过 . 可以访问类的成员
person.name="蓉蓉";
person.age=18;
person.weight=40;
//PersonTest05 person2;
//person2.name="heihei";//没有通过new一个真正的对象,所有没有引用,错误的。
}
}//变量存放了谁的地址,就说明指向了谁,引用了谁。
4、成员变量的作用域是整个类。(成员变量有默认值,局部变量没有默认值)
在局部变量的作用域内,起作用的是局部变量。即,成员变量被局部变量所隐藏。需要访问成员变量用.this访问
5、 方法(实现功能)
实现了代码重用
person.computer(x,y); //调用方法computer,跳转到方法内执行
/* 修饰符返回类型 方法名(参数列表)
* {方法体}
*/
public void computer(int a,int b){
int sum=a+b;
int sub=a-b;
System.out.println(sum);
System.out.println(sub);
}
每创建一个对象,就会分配新的空间,每个对象都有自己的成员变量,方法共享
6、 参数传递(不管参数的类型是什么,参数传递永远是值传递。)
基本类型:在方法内,形参的改变无法反作用于实参
引用类型:可以让实参和形参指向相同的对象,进而可以通过形参来改变内部的值(成员变量的值)。但是,无法改变实参本身(引用本身)。
Class car{
String color=”红色”
Int num=4;
//运行行为
Void run(){
System.out.println(color+num);
}
}
Class carDemo
{public static void main(String[] args){
Car c=new Car(); //c是类类型变量,指向对象
//改变颜色,指挥对象做事物,方式:对象。对象成员
c.color=”blue”;
c.run(); //蓝色
Car c1=new Car();
C1.run; //红色
}
}
public classBank5 {
int money;//余额
public void despite(int amount){
money+=amount;
}
Public void withdraw(int amount){
Money=money-amount
}