如何掌握Java(四)中的面向对象编程基础?

2026-05-21 03:593阅读0评论SEO资源
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计1601个文字,预计阅读时间需要7分钟。

如何掌握Java(四)中的面向对象编程基础?

一. OOP: Object-Oriented Programming

1.面向过程与面向对象

- 面向过程:关注算法和步骤,以函数为单位。 - 面向对象:关注数据和对象,以类和对象为单位。 - 区别:面向过程简单,线性思维;面向对象复杂,但更贴近现实。 - 共同点:都用于解决问题。

一.OOP:Object Oriented Programming

1.面向过程和面向对象

面向过程

面向对象

区别

事物比较简单,可以用线性的思维去解决

事物比较复杂,使用简单的线性思维无法解决

共同点

1.面向过程和面向对象都是解决实际问题的一种思维方式

2.二者相辅相成,并不是对立的。解决复杂问题,通过面向对象方式便于我们从宏观上把握事物之间复杂的关系、方便我们分析整个系统;具体到微观操作,仍然使用面向过程方式来处理

2.举例

如何吃午饭

面向过程

面向对象

买菜

洗菜

点火

......

吃饭

饭店

厨师

在饭店吃厨师做好的饭

二.对象和类

  • 世界由对象组成
  • 类可以生成对象
  • 类是对象的抽象,对象是类的实例化
  • 对象和类的概念

    • 对象:是具体的事物
    • 类:是对象的抽象

    先有具体的对象,然后抽象各个对象之间象的部分,归纳出类通过类再认识其他对象。

    三.对象的特征

    1.属性

    属性——对象具有的各种特征

    每个对象的每个属性都拥有特定值

    2.方法

    方法——对象执行的操作

    对象:用来描述客观事物的一个实体,由一组属性和方法构成

    四.类的特征

    属性(field),或者叫成员变量

    ▪属性用于定义该类或该类对象包含的数据或者说静态属性。属性作用范围是整个类体。在定义成员变量时可以对其初始化,如果不对其初始化,Java使用默认的值对其初始化。(数值:0,0.0 char:\u0000, boolean:false, 所有引用类型:null)

    ▪属性定义格式:

    [修饰符] 属性类型 属性名 = [默认值]

    面向对象中,整个程序的基本单位是类,方法是从属于对象的

    方法定义格式:

    [修饰符] 方法返回值类型 方法名(形参列表 ) {// n条语句}

    JAVA中方法参数传递是:值传递!

    public class Student { //定义属性 int StuNumber; String name; int age = 20; //定义方法 void study() { System.out.println("学习不要谈恋爱"); } void play() { System.out.println("只学习不玩耍,聪明孩子也变傻"); } void eat(String food) { System.out.println("吃"+food); }}

    但是大家要注意,不是每一个类都有方法和属性

    如何掌握Java(四)中的面向对象编程基础?

    五.创建和使用对象

    既然已经创建了一个类,那就需要学习如何创建一个对象:

    new关键字来创建一个对象:​​类名 对象名 = new 类名()​​

    对象的使用:​​对象名称.属性​​​​对象名称.方法​​

    public class Student{ //定义属性 int StuNumber; String name; int age; //定义方法 void study() { System.out.println("学习不要谈恋爱"); } void play() { System.out.println("只学习不玩耍,聪明孩子也变傻"); } void eat(String food) { System.out.println("吃"+food); } public static void main(String[] args) { Student stu1 = new Student(); System.out.println("默认值"); System.out.println(stu1.name); System.out.println(stu1.age); System.out.println(stu1.StuNumber); stu1.study(); stu1.eat("peach"); stu1.name = "Jack"; System.out.println("录入值"); //修改属性值 stu1.StuNumber = 2023119; stu1.age = 18; System.out.println(stu1.name); System.out.println(stu1.age); System.out.println(stu1.StuNumber); stu1.study(); stu1.eat("peach"); stu1.name = "Jack"; }}

    可以类别之前学习的C语言结构体

    六.案例

    输入管理员名称和密码,正确才有权限更新,错误次数超过三次显示锁定。

    import java.net.SocketTimeoutException;import java.util.Scanner;public class Administrator { String loginName = "ak27"; String password = "12345"; public void introduce(){ System.out.println(loginName); System.out.println((password)); } public static void main(String[] args) { Administrator admin = new Administrator(); int count = 0; for(count=0; ; count++) { Scanner sc = new Scanner(System.in); System.out.println("请输入用户名:"); String name = sc.nextLine(); System.out.println("请输入密码:"); String psd = sc.nextLine(); if (name.equals(admin.loginName) && psd.equals(admin.password)) { System.out.println("密码以及用户名正确"); System.out.println("请输入新的用户名"); admin.loginName=sc.nextLine(); System.out.println("请输入新的密码"); admin.password=sc.nextLine(); break; } else { int left = 2 - count; if (count == 2) { System.out.println("密码或用户名错误超过三次,系统锁定"); break; } System.out.println("密码或用户名错误,还有" + left + "次机会"); } } }}

    案例中在进行字符串比较时,使用的是equals。

    字符串在进行比较时,==比较的是地址,equals比较的是具体的值。

    练习:尝试将下述代码设计的更加符合事实:例如设密码要重复输入两次

    import java.net.SocketTimeoutException;import java.util.Scanner;public class Administrator { String loginName = "ak27"; String password = "12345"; public void introduce(){ System.out.println(loginName); System.out.println((password)); } public static void main(String[] args) { Administrator admin = new Administrator(); int count = 0; for(count=0; ; count++) { Scanner sc = new Scanner(System.in); System.out.println("请输入用户名:"); String name = sc.nextLine(); System.out.println("请输入密码:"); String psd = sc.nextLine(); if (name.equals(admin.loginName) && psd.equals(admin.password)) { System.out.println("密码以及用户名正确"); System.out.println("请输入新的用户名"); admin.loginName=sc.nextLine(); System.out.println("请输入新的密码"); admin.password=sc.nextLine(); break; } else { int left = 2 - count; if (count == 2) { System.out.println("密码或用户名错误超过三次,系统锁定"); break; } System.out.println("密码或用户名错误,还有" + left + "次机会"); } } }}

    标签:学懂Java

    本文共计1601个文字,预计阅读时间需要7分钟。

    如何掌握Java(四)中的面向对象编程基础?

    一. OOP: Object-Oriented Programming

    1.面向过程与面向对象

    - 面向过程:关注算法和步骤,以函数为单位。 - 面向对象:关注数据和对象,以类和对象为单位。 - 区别:面向过程简单,线性思维;面向对象复杂,但更贴近现实。 - 共同点:都用于解决问题。

    一.OOP:Object Oriented Programming

    1.面向过程和面向对象

    面向过程

    面向对象

    区别

    事物比较简单,可以用线性的思维去解决

    事物比较复杂,使用简单的线性思维无法解决

    共同点

    1.面向过程和面向对象都是解决实际问题的一种思维方式

    2.二者相辅相成,并不是对立的。解决复杂问题,通过面向对象方式便于我们从宏观上把握事物之间复杂的关系、方便我们分析整个系统;具体到微观操作,仍然使用面向过程方式来处理

    2.举例

    如何吃午饭

    面向过程

    面向对象

    买菜

    洗菜

    点火

    ......

    吃饭

    饭店

    厨师

    在饭店吃厨师做好的饭

    二.对象和类

  • 世界由对象组成
  • 类可以生成对象
  • 类是对象的抽象,对象是类的实例化
  • 对象和类的概念

    • 对象:是具体的事物
    • 类:是对象的抽象

    先有具体的对象,然后抽象各个对象之间象的部分,归纳出类通过类再认识其他对象。

    三.对象的特征

    1.属性

    属性——对象具有的各种特征

    每个对象的每个属性都拥有特定值

    2.方法

    方法——对象执行的操作

    对象:用来描述客观事物的一个实体,由一组属性和方法构成

    四.类的特征

    属性(field),或者叫成员变量

    ▪属性用于定义该类或该类对象包含的数据或者说静态属性。属性作用范围是整个类体。在定义成员变量时可以对其初始化,如果不对其初始化,Java使用默认的值对其初始化。(数值:0,0.0 char:\u0000, boolean:false, 所有引用类型:null)

    ▪属性定义格式:

    [修饰符] 属性类型 属性名 = [默认值]

    面向对象中,整个程序的基本单位是类,方法是从属于对象的

    方法定义格式:

    [修饰符] 方法返回值类型 方法名(形参列表 ) {// n条语句}

    JAVA中方法参数传递是:值传递!

    public class Student { //定义属性 int StuNumber; String name; int age = 20; //定义方法 void study() { System.out.println("学习不要谈恋爱"); } void play() { System.out.println("只学习不玩耍,聪明孩子也变傻"); } void eat(String food) { System.out.println("吃"+food); }}

    但是大家要注意,不是每一个类都有方法和属性

    如何掌握Java(四)中的面向对象编程基础?

    五.创建和使用对象

    既然已经创建了一个类,那就需要学习如何创建一个对象:

    new关键字来创建一个对象:​​类名 对象名 = new 类名()​​

    对象的使用:​​对象名称.属性​​​​对象名称.方法​​

    public class Student{ //定义属性 int StuNumber; String name; int age; //定义方法 void study() { System.out.println("学习不要谈恋爱"); } void play() { System.out.println("只学习不玩耍,聪明孩子也变傻"); } void eat(String food) { System.out.println("吃"+food); } public static void main(String[] args) { Student stu1 = new Student(); System.out.println("默认值"); System.out.println(stu1.name); System.out.println(stu1.age); System.out.println(stu1.StuNumber); stu1.study(); stu1.eat("peach"); stu1.name = "Jack"; System.out.println("录入值"); //修改属性值 stu1.StuNumber = 2023119; stu1.age = 18; System.out.println(stu1.name); System.out.println(stu1.age); System.out.println(stu1.StuNumber); stu1.study(); stu1.eat("peach"); stu1.name = "Jack"; }}

    可以类别之前学习的C语言结构体

    六.案例

    输入管理员名称和密码,正确才有权限更新,错误次数超过三次显示锁定。

    import java.net.SocketTimeoutException;import java.util.Scanner;public class Administrator { String loginName = "ak27"; String password = "12345"; public void introduce(){ System.out.println(loginName); System.out.println((password)); } public static void main(String[] args) { Administrator admin = new Administrator(); int count = 0; for(count=0; ; count++) { Scanner sc = new Scanner(System.in); System.out.println("请输入用户名:"); String name = sc.nextLine(); System.out.println("请输入密码:"); String psd = sc.nextLine(); if (name.equals(admin.loginName) && psd.equals(admin.password)) { System.out.println("密码以及用户名正确"); System.out.println("请输入新的用户名"); admin.loginName=sc.nextLine(); System.out.println("请输入新的密码"); admin.password=sc.nextLine(); break; } else { int left = 2 - count; if (count == 2) { System.out.println("密码或用户名错误超过三次,系统锁定"); break; } System.out.println("密码或用户名错误,还有" + left + "次机会"); } } }}

    案例中在进行字符串比较时,使用的是equals。

    字符串在进行比较时,==比较的是地址,equals比较的是具体的值。

    练习:尝试将下述代码设计的更加符合事实:例如设密码要重复输入两次

    import java.net.SocketTimeoutException;import java.util.Scanner;public class Administrator { String loginName = "ak27"; String password = "12345"; public void introduce(){ System.out.println(loginName); System.out.println((password)); } public static void main(String[] args) { Administrator admin = new Administrator(); int count = 0; for(count=0; ; count++) { Scanner sc = new Scanner(System.in); System.out.println("请输入用户名:"); String name = sc.nextLine(); System.out.println("请输入密码:"); String psd = sc.nextLine(); if (name.equals(admin.loginName) && psd.equals(admin.password)) { System.out.println("密码以及用户名正确"); System.out.println("请输入新的用户名"); admin.loginName=sc.nextLine(); System.out.println("请输入新的密码"); admin.password=sc.nextLine(); break; } else { int left = 2 - count; if (count == 2) { System.out.println("密码或用户名错误超过三次,系统锁定"); break; } System.out.println("密码或用户名错误,还有" + left + "次机会"); } } }}

    标签:学懂Java