Java面向对象基础
来源:互联网 发布:淘宝客服子账号认证 编辑:程序博客网 时间:2024/05/01 22:01
一、 理解面向对象
面向对象,是相对于同时也基于面向过程(比如C语言)而言的,它们都是一种编程思想,面向对象将功能封装进对象,强调具备了具体功能的对象。
比如,你创办了一家公司,需要财务管理,业务管理,人力资源管理等等,但自己没有多少管理经验,这时候你只要找到一个精通管理的专业人士,这些问题都可以迎刃而解。面向过程强调的是那些具体的管理行为,而面向对象强调的就是这个“精通管理的人”对象。
二、 面向对象的特点
1. 它是符合人们思考习惯的编程思想
2. 可以将复杂的事情简单化,比如上面提到的例子,你要做的只是找到一个人就可以了,而不必亲自处理那么多自己不熟悉的东西
3. 将程序员从执行者转换成了指挥者,还是上面的例子,你从繁杂事务中抽出身来,只有指挥那个精通管理的人做事就可以了
三、 面向对象开发、设计、特征
1. 开发过程:就是不断创建对象,使用对象
2. 设计过程:就是在管理和维护对象与对象之间的关系
3. 面向对象的特征:
i. 封装(encapsulation)
ii. 继承(inheritance)
iii. 多态(polymorphism)
四、 类与对象的关系
Java对事物的描述是通过类(class)的形式体现,类是具体事物的抽象。对象就是该类事物实实在在存在的个体。
比如,类可以理解为是汽车的设计图纸,汽车就是对象(在堆内存中)
1. 类
生活中描述事物就是通过 属性和 行为 。比如,人有身高、体重、视力等属性,有讲话、书写、跑步等行为。
类似的,JAVA中用类(class)来描述对象
1) 属性:对应类中的成员变量
2) 行为:对应类中的成员方法
2. 成员变量跟局部变量的区别
成员变量
局部变量
定义位置
类中
函数或者语句内
内存位置
堆内存
栈内存
生命周期
随对象建立
作用结束,空间释放
默认初始化值
有
无
3. 创建对象,使用对象
//定义一个描述Car的类
class Car{
String color = "red";
int num = 4;
void run(){
System.out.println(color+"---"+num);
}
}
public class CarDemo
{
public static void main(String[]args)
{
Car c = new Car();//定义一个类类型变量(类比数组定义)
c.color = "bule";//修改汽车的颜色
c.num = 6;
c.run();//调用Car的run方法
Car c1 = new Car();
c1.run();
Car c2 = c;
c2.color = "black";
}
}
4. 匿名对象
两种情况下使用:
i. 当对对象方法 仅进行一次调用时,如 new Car().run()
ii. 匿名对象作为实际参数进行传递时,如
int testObject ( new Car() ){ }
五、 封装
1. 是指隐藏对象的属性 和 方法的实现细节,仅对外提供公共访问方式
2. 方法:将实例变量(成员变量)私有化(private修饰),同时对外提供 “setter”和 “getter”方法(public修饰)
3. 好处:提高安全性,方便使用
4. 封装举例:
class PersonDemo{
privateString name;
privateint age;
publicvoid setName(String myName){
name = myName;
}
publicString getName(){
returnname;
}
}
六、 构造函数和 构造代码块
1. 特点:
i. 构造函数名与 类名相同
ii. 不需要定义返回值类型,不可以写return语句
iii. 构造代码块没有名称直接写在 { } 中
2. 作用:
i. 构造函数给相应的对象进行初始化
ii. 构造代码块给所有对象进行初始化
3. 程序示例
class MyObject
{
privateString name;
privateint age;
privatestatic String country = "cn";
{
System.out.println("helloboy"); //构造代码块
}
MyObject(StringmyName, int myAge) //构造函数01
{
name = myName;
age = myAge;
}
MyObject(StringyourName, String yourCountry)//重载
{
name = yourName;
country= yourCountry;
}
}
七、 this 关键字
它代表本类对象的引用。当在方法内需要用到 调用该方法的对象时,使用this。程序示例:
class PersonDemo{
privateString name;
privateint age;
publicvoid setName(Stringname){
this.name = name;
}
publicString getName(){
returnname;
}
}
八、 static(静态)关键字
1. 用于修饰成员,包括成员变量 和 成员函数
2. 静态成员特点:
i. 随着 类 的加载而加载
ii. 优先于对象存在
iii. 被所有 本类对象 所共享
iv. 可以直接被 类名 调用,如
classCar{
String color = "red";
static int num = 4;//可以使用Car.num调用num
void run(){
System.out.println(color+"---"+num);
}
}
3. 注意:
i. 静态方法 只能访问 静态成员
ii. 静态方法中不可以写 this , super关键字
- java基础 面向对象
- Java面向对象基础
- java基础-面向对象
- java面向对象基础
- JAVA面向对象基础
- Java面向对象基础
- Java面向对象基础
- java基础----面向对象
- java 面向对象基础
- 【Java基础】面向对象
- java基础面向对象
- JAVA面向对象基础
- Java基础:面向对象
- java基础---面向对象
- Java基础--面向对象
- Java基础:面向对象
- Java基础--面向对象
- java基础--面向对象
- Myeclipse修改文件默认打开方式 jsp xml
- 网易企业邮箱pop和smtp 设置 java实现发邮件设置
- ASP.NET WebForm使用IoC容器(Spring.NET容器、Castle等等)
- viewcontroller上切换新方式
- openstack各个组件对应介绍
- Java面向对象基础
- 每个人眼中的世界
- 如何让局域网的其它电脑访问自己Tomcat搭建的服务器
- 虚拟机启动时提示内存不够问题
- UVA 10318 简单dfs
- goldengate复制同步单表修复
- 文件避免include多次的方法
- 一些js的经验(教训的总结吧)
- QUANTITY_DETAILED,QUANTITY_DELIVERED in MTL_TXN_REQUEST_LINES