面向对象.

本文介绍了面向对象编程的概念,包括其在软件开发中的应用和与面向过程的区别。讲解了面向对象的优势(如可扩展性和可维护性)以及构造方法、类和对象的使用,涉及实例化、异常处理和静态属性的调用。最后,强调了区分构造方法和成员方法的重要性。
摘要由CSDN通过智能技术生成

1.1.概述

面向对象是软件开发方法,一种编程范式。面向对象的概念和应用已经超越了程序设计和软件开发,拓展到入数据库系统,交互式界面,应用结构,应用平台.分布式系统.网路管理结构.CAD技术.人工智能等领域,面向对象是一种对现实世界理解和抽象的方法,是计算机编程技术发展到一定阶段的产物.

面向对象是相当于面向过程来讲的,面向对象方法,把相关的数据和方法组织一个整体来看待,从更高层次来进行系统建模,更贴近事物的自然运行模式.

1.2. ,面向对象和面向过程

面向过程 :侧重分步骤,继续考虑完成该功能的过程.第一步做什么,第二步做什么...

面向对象 : 侧重分模块

总结 :

面向对象优势 : 可拓展性,可维护性,灵活性,使程序耦合度降低

缺点 : 性能比面向过程相对较差

1.3. 构造方法

构造方法是每个类都有的,并且用于创建该类的对象

如果该类中没有写构造方法,则默认有一个公共的无参构造

如果我们便编写了一个构造方法,则默认的无参构造方法就没有了(尽管我们写的是有参)

所以一般自定义构造方法的时候,就再写一个无参构造

构造方法语法 : 修饰符 方法名/类名(参数列表){方法体}

构造方法的修饰符 我们只使用权限控制即可,不能使用static

构造方法没有返回值 连void都没有

构造方法的方法名必须和类名一致

1.4. 类和对象

类 : 对一类事物客观描述标准

对象 : 一切皆对象,是具体的个体,符合类标准的个体

根据不同属性的划分不同的类

根据不同的属性值划分不同的对象

局部变量 : 方法中使用,作用域也在该方法中,具有临时性的,不适合长期存储,方法执 行完局部变量也就销毁了

静态变量 : 类级别的变量,所有该类对象访问这个变量时,值是一样的

成员变量 : 对象级别的,所有该类的对象都有这个属性,但是值可能一样,可能不一样

1.5. 对象的使用

tudent s1=new Student();

s1.age=19;

s1.addrs="石家庄";

s1.name="李四";

s1.no=10010;

Student s2=new Student();

s2.age=18;

s2.addrs="秦皇岛";

s2.name="张三";

System.out.println(s2.age); //不写no并不代表没有,因为是int类型默认值为零.

System.out.println(s1.age);

System.out.println(s2.name);

1.6. javaBean

public class User {

//用户名

private String username;

//密码

private String password;

//昵称

private String nickname;

//构造方法

public User(){

}public User(String username,String password){

//有参构造 用于创建对象时 初始化成员变量的值

this.username=username;

this.password=password;

}

public User(String username, String password, String nickname) {

//全参构造

this.username = username;

this.password = password;

this.nickname = nickname;

}

//getters and setters 用来获取和修改私有化成员变量的

public void setUsername(String username){

if (username=="test") {

username="请重新输入";

}

//成员方法中可以直接访问成员属性

//this就是当前对象,谁调用,this就是谁

this.username=username;

}

public String getUsername(){

return username;

}

public String getPassword() {

return password;

}

public void setPassword(String password) {

this.password = password;

}

public String getNickname() {

return nickname;

}

public void setNickname(String nickname) {

this.nickname = nickname;

}

1.7. 实例化

实例化 : 就是指创建一个类的对象(实例 过程)

User user=new User();

new 回去堆内存开辟一个内存空间,用于保存成员属性

调用构造方法(栈内存压栈),对堆内存数据进行初始化赋值,如果没有传入参数,则赋予默认值

构造方法执行完后,弹栈,并把堆内存地址返回给调用处,赋值给变量user

1 加载客户端类(OOP_05)

2 调用客户端main方法

3 加载服务端类(User)

4 调用User的构造方法

5 堆内存创建空间,并对成员属性进行初始化

6 构造方法弹栈,并把内存地址赋值给变量

1.8. 常见异常

User user = new User("admin", "root");

user = null;

// 一种是编译时异常

// 一种是运行时异常

// java.lang.NullPointerException 空指针异常, 是运行时异常

// 使用null 访问成员属性,就会出现空指针异常

System.out.println(user.getUsername());

1.9. 对象调用静态属性

static int a = 22;

int b = 33;

public static void main(String[] args) {

int a = 1;

OOP_07 o = new OOP_07();

System.out.println(o.b);

o = null;

// 可以通过对象调用静态属性

// 调用静态变量,因为在编译时,会自动把o换成对应的类名去调用

System.out.println(o.a);

// 调用静态变量

System.out.println(OOP_07.a);

// 调用局部变量

System.out.println(a);

1.10.注意事项

1.10.1. 区分成员方法和构造方法

new OOP_09();

new OOP_09(22);

new OOP_09("")

}

//构造方法修饰符可以不写

OOP_09(){

}

OOP_09(int a ){

}

//成员方法名可以和类名一样

//如何区分同名的成员方法和构造方法呢?看返回值,构造方法没有返回值,连void都没

public void OOP_09(String a){

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值