面向对象

  • 语言
  • 面对对象的基本概念
  • 面向对象
  • 对象
  • 总结
  • 定义类
  • 定义类
  • 属性
  • 方法
  • 创建和使用对象
  • 创建对象
  • 使用对象
  • 总结
  • 示例


语言

语言:
汇编语言
解释性语言:
编程语言
高级编程语言:C语言
java、C++
Python
go
Scala

面对对象的基本概念

面向对象

Java语言是一种面向对象的语言。要使用Java进行面向对象的编程,首先要建立面向对象的思想。面向对象是一种直观而且程序结构简单的程序设计方法,它比较符合人类认识现实世界的思维方式。其基本思想是把问题看成是有若干个对象组成,这些对象之间是独立的,但又可以相互配合、连接和协调,从而共同完成整个程序要实现的任务和功能。
面向对象的三大特征:封装、继承和多态。

对象

对象是用来描述客观事物的一个实体。

类是具有相同属性和方法的一组对象的集合。类定义了对象将会拥有的特征(属性)和行为(方法)。
类与对象的关系就如同模具和用这个模具制作出的物品之间的关系。一个类给出它的全部对象的一个统一的定义,而它的每个对象则是符合这种定义的一个实体。因此类和对象的关系就是抽象和具体的关系。类是多个对象进行综合抽象的结果,是实体对象的概念模型,而一个对象是一个类的实例。

总结

对象是由静态特征和动态特征构成。
静态特征:属性
动态特征:方法
类是具有相同特征的对象的集合(抽象)。
对象是类的实体。
类是对象的抽象,对象是类的具体实现。
面向对象分为:OOA(面向对象分析)、OOD(面向对象设计)、OOP(面向对象编程)。

定义类

面相对象设计的过程就是抽象的过程,一般分3步来完成。
(1)发现类,类定义了对象将会拥有的特征(属性)和行为(方法)。
(2)发现类的属性,对象所拥有的静态特征在类中表示时称为类的属性。
(3)发现类的方法,对象执行的操作称为类的方法。

定义类

定义类的语法格式如下:
[访问修饰符] class 类名{
//省略类的内部具体代码
}
访问修饰符如public、private等是可选的。
class是声明类的关键词。
按照命名规范,类名首字母大写。

属性

Java中类的内部主要包含属性和方法。对象所拥有的特征在类中表示时称为类的属性。定义属性的语法格式如下:
[访问修饰符] 数据类型 属性名;
访问修饰符是可选的。
除了访问修饰符之外,其他的语法的声明变量类似。

方法

对象执行操作的行为称为类的方法。
定义语法格式如下:
[访问修饰符] 返回类型 方法名称(参数类型 参数名1,参数类型 参数名2,…){
//…省略方法体代码
}
访问修饰符是可选的。
返回类型可以的void,在定义方法时,返回类型为void时表明没有返回值,方法体中不必使用“return”关键字返回具体数据,但是可以使用“return”关键字返回对应类型的结果,否则程序会出现编译错误。
小括号中的“参数类型 参数名1,参数类型 参数名2,…”称为参数列表。
当需要在方法执行的时候为方法传递参数时才需要参数列表,如果不需要传递参数就可以省略,不过小括号不可以省略,传递多个参数时,以半角的逗号进行分隔。

创建和使用对象

创建对象

类是一类事物的集合和抽象,代表这类事物共有的属性和行为。一个对象称为类的一个实例,是类一次实例化的结果。
类的对象可以调用类中的成员,如属性和方法等。
创建对象的语法格式如下:
类名 对象名=new 类型()
new是关键字。
左边的类名为对象的数据类型。
右边的类型()称为类的构造方法。

使用对象

在Java中,要引用对象的属性和方法,需要使用“.”。
使用对象的语法格式如下。
对象名.属性 //引用对象的属性
对象名.方法名() //引用对象的方法

总结

方法:
无返回值的时候关注的重点是过程 -->存储过程
有返回值的时候关注的重点是结果 -->函数
无参方法的格式:
无返回值:
[访问修饰符类型] void 方法名(){
代码;
}
有返回值:
[访问修饰符类型] 返回值的类型 方法名(){
代码;
}
方法的调用:
无参方法直接用 对象名.方法名()调用即可
有参方法调用:调用的同时要接收
返回值类型 变量名=对象名. 方法名()

示例

示例一:

package kb09;

/**
 * @Author
 * @Date 2020/7/17
 * @Description 学生类
 * 属性:姓名、年龄、体重、身高
 * 方法:学习、自我介绍
 */
public class Student {
    String name;
    int age;
    double weight;
    double height;
    public void study(){
        System.out.println("好好学习,天天向上!");
    }public void show(){
        System.out.println("我叫:"+name+",我今年"+age+"岁,身高:"+height+",体重:"+weight);
 }
 }
public class TextStudent {
    public static void main(String[] args) {
        Student hao = new Student();//对象的创建
        //属性的赋值
        hao.name="张浩";
        hao.age=20;
        hao.height=180;
        hao.weight=180;
        //方法的调用
        hao.show();
        hao.study();

输出结果:

java 纯面向对象 java面向对象的基本概念_大数据


示例二:

package kb09;

/**
 * @Author
 * @Date 2020/7/17
 * @Description 学校类
 * 属性:校名、地址、课程
 * 方法:宣传、授课
 */
public class School {
    String schoolName;
    String address;
    String subjesct;
    public void advertisement(){
        System.out.println("本校:" + schoolName + ",地址为:" + address + ",教授课程为:" + subjesct);

    }public void teach(){
        System.out.println("来是come去是gogo!!");
    }
}
public class TextSchool {
    public static void main(String[] args) {
        School kgc = new School();
        kgc.schoolName="课工场";
        kgc.address="小行路2号警官学院内部";
        kgc.subjesct="大数据";
        kgc.advertisement();
        kgc.teach();
        System.out.println(kgc.schoolName);
    }
}

输出结果:

java 纯面向对象 java面向对象的基本概念_java 纯面向对象_02


示例三:编写学员类,输出学员相关信息

编写教员类,输出教员相关信息

java 纯面向对象 java面向对象的基本概念_System_03

public class Xueyuan {
    String name;
    int age;
    String banji;
    String aihao;
    public void xuexi(){
        System.out.println("姓名是:" + name + ",年龄是:" + age + ",就读于:" + banji + ",爱好是:" + aihao);
    }
}
public class TextXueyuan {
    public static void main(String[] args) {
        Xueyuan yuan=new Xueyuan();
        ="张浩";
        yuan.age=10;
        yuan.banji="51班";
        yuan.aihao="篮球";
        yuan.xuexi();
    }
}

输出结果:

java 纯面向对象 java面向对象的基本概念_java 纯面向对象_04

public class JiaoYuan {
    String name;
    String zhuanye;
    String kecheng;
    int age;
    public void jiao(){
        System.out.println("姓名是:"+name+",专业方向:"+zhuanye+",教授课程:"+kecheng+",教龄:"+age);
    }
}
public class TextJiaoYuan {
    public static void main(String[] args) {
        JiaoYuan jiao=new JiaoYuan();
        jiao.name="张老师";
        jiao.zhuanye="计算机";
        jiao.kecheng="使用Java语言理解程序逻辑";
        jiao.age=5;
        jiao.jiao();
    }
}

输出结果:

java 纯面向对象 java面向对象的基本概念_大数据_05

示例四:一个景区根据游人的年龄收取不同价格的门票。请编写游人类,根据年龄段决定能够购买的门票价格并输出。

java 纯面向对象 java面向对象的基本概念_大数据_06

/**
 * @Author
 * @Date 2020/7/17
 * @Description 游客类
 * 属性:姓名、年龄
 */
public class Visitor {
    String name;
    int age;
}
/**
 * @Author
 * @Date 2020/7/17
 * @Description
 */
public class Park {
    Visitor visitor;
    final int Price=100;
    void sellTicket(){
        int age = visitor.age;
        //60岁以上,免票,22岁以下半票,其余的全票
       if(age>60){
           System.out.println("滴,老年卡,"++"您需要支付"+0* Price);
       }else if(age<22){
           System.out.println("滴,学生卡,"++"您需要支付"+Price/2);
       }else {
           System.out.println("滴,普通卡,"++"您需要支付"+Price);
       }
    }
}
/**
 * @Author
 * @Date 2020/7/17
 * @Description
 */
public class TestTour {
    public static void main(String[] args) {
        Visitor v=new Visitor();
        ="张浩";
        v.age=20;
        Park p=new Park();
        p.visitor=v;
        p.sellTicket();
    }
}

输出结果:

java 纯面向对象 java面向对象的基本概念_System_07


示例五:模拟实现用户密码管理:输入旧的用户名和密码,如果正确,方有权限更新;从键盘获取新的密码,进行更新。

java 纯面向对象 java面向对象的基本概念_System_08

import javax.jws.soap.SOAPBinding;
import java.util.Scanner;

/**
 * @Author
 * @Date 2020/7/17
 * @Description
 */
public class User {
    String username="admin1";
    String password="111111";
    void changePwd(){
        Scanner sc=new Scanner(System.in );
        System.out.print("请输入用户名:");
        String name=sc.next();
        System.out.println("请输入密码:");
        String pwd=sc.next();
        if(name.equals(username)&&pwd.equals(password)){
            //用户名和密码都正确,可以修改密码
            System.out.println("请输入新的密码:");
            password=sc.next();
            System.out.println("修改密码成功,您新密码为:"+password);
        }else{
            System.out.println("用户名和密码不正确,您没有权限修改密码!");
        }
    }

    public static void main(String[] args) {
        User user=new User();
        user.changePwd();
    }
}

输出结果:

java 纯面向对象 java面向对象的基本概念_java 纯面向对象_09