java笔记第六章之面向对象

第六章:面向对象

@对象:(什么是对象) 一切客观(不一定看的见摸的着)存在的事物都是对象,

#:对象的组成部分:1,属性 2,方法  对象的属性可以又是一个对象

   计算机中的对象:一块连续的存储空间 

#类是什么:1.类是大量对象共性的抽象 2,类是客观事物在人脑中的主观反映 3,类是创建对象的模板(类是主观存在,对象是客观存在的)完成了模板才能有对象

#定义类:class + 类名{}

#创建对象的两种方法:1.Student s1=new Student()   2. Student s1; s1=new Student();

#.OOP:Object oriented Programming 面向对象编程

  XP:extreme Programm 极限编程

#实例变量;定义在类中,实际上属于对象的 1,不用先赋值,存在默认值,2,作用范围不用,至少在本类内有效,3,实例变量可以和局部变量命名冲突局部变量优先使用

#局部变量;特点:1,必须写在方法中 2,必须先赋值再使用,没有默认值,3,作用范围在一个代码块中 

#方法: 方法的格式:  修饰符 返回值类型 方法名(参数1,参数2) 异常{方法体}  (这个可以省)方法要在类的内部定义;

#.点运算符.是属于的意思,student.add(2) 方法

#,如果有多个函数与你传递的参数匹配,那么最精确的函数会被调用

#。构造方法的重载:特点:1,构造方法不能被手工调用,被自动调用 2,构造方法在对象构造时被启动调用一次,而且只会被调用一次

#创建对象:1,内存中分配空间,指定默认值,2,初始化属性,3,调用构造函数

#如果在一个类中没有定义构造函数,系统会默认提供一个公开的无参的空构造方法

#用构造方法给实例变量赋值

class student{

String name;

int age=20;

public student(){}

public student(int age){

this.age=age;

}

} student s=new student(10)  一个对象创建过程实例变量会发生三次变化,我们能改变的是第三次  ,实例变量存在默认值

@对象和引用

#引用的概念 Student s; s=new Student(); 1,对象类型的变量就叫做引用

  2,引用存储的是对象内存空间的首地址

int a=10;

int b=a;

b++;

system.out.println(a) //a还是10b11  基本数据类型在内存中存的都是数据,没有地址

经典:student s1=new student();

student s2=s1; //相当于指针       s1指向student内存的首地址,s1把首地址赋给了s2s2s1同时指向了同一个对象同一块内存

s2.age=21;

system.out.println(s1.age)  

#程序中传值问题 

1int a=20;

 m1(a);

 system.out.println(a)//打印出a=10;等于把a的值复制给a值不变

 public static void m1(int b){

 b++

 }

 

2Student s1=new Student()

m2(s1);

system.out.println(s1.age);

pulbic void m2(Student stu){

stu.age++

}

class student{//打印出21 因为把首地址传了过去,直接操作了对象属性

int age=20;

}

还有种情况是 克隆: 拷贝一份和源对象状态一致的对象

Student student=new Student();

student.age=5;

Student Student2=(Student)student.clone(); //返回值是object对象

student2.age=10;

System.out.println(student.age);

class student implements Cloneable{

int age=2;

实现接口:

protected object clone() throws 

return super.clone();

}

克隆的分类:1,深度克隆 :使用场合,如果我们想把一个对象的状态传递到方法中,而不想让方法影响到传入对象的状态,那么就可以考虑克隆 2,浅度克隆

使用方法:实现 Cloneable接口,重写clone方法;


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值