java面向对象
2013-11-19 14:30
120 查看
A:面向对象:
1)面向对象是:相对于面向过程而言的,是基于面向过程的。
面向过程:强调的是一种功能;
面向对象:强调的是对象,即具有该功能的对象,我们有该对象完成功能,强调的是结果;
面向对象和面向过程都是一种编程思想。
2)面向对象思想:
(1)面向对象是一种符合人们思考习惯的一种思想;
(2)将复杂事情简单化
(3)将程序员从执行者转化为操作者
举例:比如去买电脑,找人帮忙买;就是面向对象
3)面向对象的特征:
(1)封装 (2)继承 (3)多态
B:类和对象的关系:
1)类是用来描述事物的;对象是现实世界存在的事物。
2)现实事物都是用属性和行为来描述,用java语言中用成员变量和成员方法来描述,就是:
属性-----成员变量
行为-----成员方法
3)自定义类:自class来定义一个类,它里面包括成员变量和成员方法
4)自定义类
class Car
{
int price;
public void show()
{
sop(price);
}
}
创建对象:
Car c = new Car();
//使用属性
sop(c.price);
c.price = 1000;
sop(c.price);
//使用方法
c.show();
使用对象中的功能的格式:对象名.成员变量名;对象名.成员方法名();
简单的内存图:如图
C:成员变量和局部变量的区别:
1)作用域和存储位置
成员变量:是随着对象的存在而存在,存储在堆内存中,随着对象的消失而消失,作用于整个类;
局部变量:存在于方法和语句中,只有方法被调用或语句被执行才会存在,存储在栈内存中,当方法或语句执行完后,局部变量在栈内存中释放;
2)初始值
成员变量:在堆内存中都有默认初始值;
局部变量:没有默认初始化值,被调用时必须手动给其初始化;
D:匿名对象:
1)匿名对象,就是没有名字的对象。是对象的一种简写形式。
2)应用场景
(1):只一次调用类中的方法。
Person p = new Person();
p.show();
//匿名使用如下
new Person().show();
(2):可以作为实际参数在方法传递中使用
Person p = new Person();
method(p);
//匿名使用如下
method(new Person());
public static void method(Person p)
{
p.show();
}
E:封装:
1)隐藏实现细节,对外提供公共的访问方式;举例:机箱
2)好处:将变化隔离
便于使用
提高了复用性
提高了安全性
3)代码体现:private是一种权限修饰符,用于修饰(成员变量和成员函数),被private修饰的成员只在本类中有效;
用private修饰的成员变量,要对外提供公共的setXxx和getXxx方法;
class Person
{
private String name;
private int age;
public voidsetName(String n)
{
name = n;
}
public StringgetName()
{
return name;
}
public voidsetAge(int a)
{
age = a;
}
public int getAge()
{
return age;
}
}
私有private只是封装的一种体现形式;
F:构造方法
1)构造方法是用于创建对象,并进行初始化值的。
2)构造方法的特点:
A:和类名相同 B:没有返回类型 C:没有返回值
3)构造方法的注意事项:
A:如果一个自定义类没有构造方法,系统会默认给出一个无参构造方法。
B:如果一个自定义类提供了构造方法,那么,系统将不再给出无参构造方法;这个时候,你可以不使用无参构造方法;
如果你想使用,那么,就手动给出无参构造方法。建议:一般情况下,我们的自定义类都要手动给出无参构造方法。
4)构造方法和成员方法的区别
A:格式区别
构造方法和类名相同,并且没有返回类型,也没有返回值。
普通成员方法可以任意起名,必须有返回类型,可以没有返回值。
B:作用区别
构造方法用于创建对象,并进行初始化值。
普通成员方法是用于完成某个功能的。
C:调用区别
构造方法是在创建对象时,用new调用的。
普通成员方法是由创建的对象调用的。
5)成员变量赋值
通过setXxx方法和构造函数
G:this关键字:
1)this关键字代表本类对象的一个引用,谁调用某个方法,在这个方法内部this就代表谁;
2)this使用场景
A:局部变量隐藏成员变量时; B:在构造方法中,调用其他的构造方法时,这个时候this(参数)必须作为第一条语句存在。
1)面向对象是:相对于面向过程而言的,是基于面向过程的。
面向过程:强调的是一种功能;
面向对象:强调的是对象,即具有该功能的对象,我们有该对象完成功能,强调的是结果;
面向对象和面向过程都是一种编程思想。
2)面向对象思想:
(1)面向对象是一种符合人们思考习惯的一种思想;
(2)将复杂事情简单化
(3)将程序员从执行者转化为操作者
举例:比如去买电脑,找人帮忙买;就是面向对象
3)面向对象的特征:
(1)封装 (2)继承 (3)多态
B:类和对象的关系:
1)类是用来描述事物的;对象是现实世界存在的事物。
2)现实事物都是用属性和行为来描述,用java语言中用成员变量和成员方法来描述,就是:
属性-----成员变量
行为-----成员方法
3)自定义类:自class来定义一个类,它里面包括成员变量和成员方法
4)自定义类
class Car
{
int price;
public void show()
{
sop(price);
}
}
创建对象:
Car c = new Car();
//使用属性
sop(c.price);
c.price = 1000;
sop(c.price);
//使用方法
c.show();
使用对象中的功能的格式:对象名.成员变量名;对象名.成员方法名();
简单的内存图:如图
C:成员变量和局部变量的区别:
1)作用域和存储位置
成员变量:是随着对象的存在而存在,存储在堆内存中,随着对象的消失而消失,作用于整个类;
局部变量:存在于方法和语句中,只有方法被调用或语句被执行才会存在,存储在栈内存中,当方法或语句执行完后,局部变量在栈内存中释放;
2)初始值
成员变量:在堆内存中都有默认初始值;
局部变量:没有默认初始化值,被调用时必须手动给其初始化;
D:匿名对象:
1)匿名对象,就是没有名字的对象。是对象的一种简写形式。
2)应用场景
(1):只一次调用类中的方法。
Person p = new Person();
p.show();
//匿名使用如下
new Person().show();
(2):可以作为实际参数在方法传递中使用
Person p = new Person();
method(p);
//匿名使用如下
method(new Person());
public static void method(Person p)
{
p.show();
}
E:封装:
1)隐藏实现细节,对外提供公共的访问方式;举例:机箱
2)好处:将变化隔离
便于使用
提高了复用性
提高了安全性
3)代码体现:private是一种权限修饰符,用于修饰(成员变量和成员函数),被private修饰的成员只在本类中有效;
用private修饰的成员变量,要对外提供公共的setXxx和getXxx方法;
class Person
{
private String name;
private int age;
public voidsetName(String n)
{
name = n;
}
public StringgetName()
{
return name;
}
public voidsetAge(int a)
{
age = a;
}
public int getAge()
{
return age;
}
}
私有private只是封装的一种体现形式;
F:构造方法
1)构造方法是用于创建对象,并进行初始化值的。
2)构造方法的特点:
A:和类名相同 B:没有返回类型 C:没有返回值
3)构造方法的注意事项:
A:如果一个自定义类没有构造方法,系统会默认给出一个无参构造方法。
B:如果一个自定义类提供了构造方法,那么,系统将不再给出无参构造方法;这个时候,你可以不使用无参构造方法;
如果你想使用,那么,就手动给出无参构造方法。建议:一般情况下,我们的自定义类都要手动给出无参构造方法。
4)构造方法和成员方法的区别
A:格式区别
构造方法和类名相同,并且没有返回类型,也没有返回值。
普通成员方法可以任意起名,必须有返回类型,可以没有返回值。
B:作用区别
构造方法用于创建对象,并进行初始化值。
普通成员方法是用于完成某个功能的。
C:调用区别
构造方法是在创建对象时,用new调用的。
普通成员方法是由创建的对象调用的。
5)成员变量赋值
通过setXxx方法和构造函数
G:this关键字:
1)this关键字代表本类对象的一个引用,谁调用某个方法,在这个方法内部this就代表谁;
2)this使用场景
A:局部变量隐藏成员变量时; B:在构造方法中,调用其他的构造方法时,这个时候this(参数)必须作为第一条语句存在。
相关文章推荐
- java的面向对象
- Java入门笔记-(面向对象:封装,多态,继承)
- java面向对象(类相关)
- Java — 面向对象(自测题)
- Java学习之面向对象(1.Object类,(1)toString方法,(2)equals方法,2.对象转型(casting),3.动态绑定与多态,4.抽象类(abstract),5.Final关键字)
- js面向对象开发 (二)js模拟Java中的map
- Java基础之面向对象的基本概念(3)
- java学习基础面向对象之构造方法 五-3
- RxJava与面向对象Java的对比和基础数据构造
- java 面向对象 一
- Java---面向对象---自动装箱和拆箱
- Java面向对象的特点和理解
- 第3章 Java与面向对象——FAQ3.01 什么是类. 对象. 属性和方法?
- java笔记——初识面向对象04继承
- Java基础知识之面向对象(1)
- java基础重点: 面向对象,
- 黑马程序员—java技术blog—第五篇面向对象_继承概述及基础应用
- JAVA面向对象的特征
- java语言基础(33)——面向对象(父类中没有无参构造编译报错——无法将类 xxx中的构造器 xxx应用到给定类型 实际参数列表和形式参数列表长度不同)
- Java学习笔记14(面向对象七:final、static)