美文网首页
Jade - Java 面向对象1

Jade - Java 面向对象1

作者: __method__ | 来源:发表于2021-05-05 00:02 被阅读0次

面向对象关键

  • 面向对象 相对于 面向过程(一步一步)
  • 类: 类是对象的模板
  • 对象: 对象是类的一个实例
  • 类: 一组相关属性(静态)和行为(动态)的集合
    创建一个Student类
public class Student {
    // 属性
    String name = "张三";
    int age = 18;
    double score = 0.0;
    // 行为==方法
    public void study(){
        System.out.println("good good study  day day up");
    }
    public void eat(){
        System.out.println("eat");
    }
}

测试类

package com.myc.day02;

public class TestStudent {
    public static void main(String[] args) {
        // 使用类
//        类名 对象名 =  new 类名();
        // 实例化一个对象student1
        Student student1 = new Student();
        // 访问属性
        System.out.println(student1.name);
        // 修改属性
        student1.name = "李四";
        System.out.println(student1.name);
        // 调用方法
        student1.study();
        student1.eat();
        Student student2 = new Student();
        student2.name = "王五";
        System.out.println(student2.name);

    }
}

成员变量(属性)的默认值

编写手机类

package com.myc.day02;

public class Phone {
    String brand;
    int stock;
    char a;
    float price;
    boolean upOrDown;
    String[] peiJian;

    public void callSomeOne(String name){
        System.out.println("正在和"+name+"通话中");
    }

    public void show(){
        System.out.println("String brand = "+brand); // null
        System.out.println("int stock = "+ stock); // 0
        System.out.println("char a = "+a); // '\0000'
        System.out.println("float price = "+price); // 0.0
        System.out.println("boolean upOrDown = "+ upOrDown); // false
        System.out.println("String[] peiJian = "+ peiJian); // null
    }
}

测试

package com.myc.day02;

public class TestPhone {
    public static void main(String[] args) {
        Phone phone1 = new Phone();
        phone1.show();
        phone1.callSomeOne("Eric");
    }
}

成员变量和局部变量的区别

在类中位置不同
  • 成员变量: 类中, 方法外
  • 局部变量: 方法中或者方法声明上(形式参数)
作用范围不同
  • 成员变量: 类中
  • 局部变量: 方法中
初始化值不同
  • 成员变量: 可以有默认值
  • 局部变量: 没有默认值, 必须先定义, 赋值才能使用

面向对象三大特性

  • 继承
  • 多态
  • 封装

封装

1 使用private修饰成员变量
2 为成员变量提供公有的get, set 方法

package com.myc.day02;

public class Cat {
    private String name;
    private String type;
    private int age;
    // get 是返回成员变量值的方法
    public String getName(){
        return name;
    }
    // set 是修改成员变量值的方法
    // 不符合见名知义
//    public void setName(String new_name){
//        name = new_name;
//    }
    // this 代表当前类对象

    public void setName(String name){
        this.name = name;
    }
}

测试

package com.myc.day02;

public class TestCat {
    public static void main(String[] args) {
       Cat c1 =  new Cat();

//       String name = c1.name;
        System.out.println(c1.getName());
        c1.setName("花卷");
        System.out.println(c1.getName());
        System.out.println("++++++++++++++");
        Cat c2 =  new Cat();
        c2.setName("馒头");
        System.out.println(c2.getName());


    }
}

示例2

package com.myc.day02;

public class ComputerProgram {
    private String name;
    private String function;
    private int popular;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getFunction() {
        return function;
    }

    public void setFunction(String function) {
        this.function = function;
    }

    public int getPopular() {
        return popular;
    }

    public void setPopular(int popular) {
        this.popular = popular;
    }
}

测试

package com.myc.day02;

public class TestComputerProgram {
    public static void main(String[] args) {
        ComputerProgram cp1 = new ComputerProgram();
        cp1.setName("Python");
        ComputerProgram cp2 = new ComputerProgram();
        cp2.setName("Java");

        System.out.println(cp1.getName());
        System.out.println(cp2.getName());
    }
}

构造方法

与类名相同, 它没有返回值, 不需要返回值类型, 也不需要void

package com.myc.day02;

public class Dog {
    private String name;
    private String type;
    private int age;

    // 构造方法==构造器==构造函数
    // 作用: 初始化的类中的成员变量
//    public 类名(参数列表){
//
//    }
    // 空参构造方法
    public Dog(){
        System.out.println("空参构造方法被调用");

    }
    // 有参构造方法
    public Dog(String name){
        System.out.println("构造方法被调用");
        this.name = name;
    }
    public Dog(String name, String type, int age){
        this.name = name;
        this.type = type;
        this.age = age;
    }


    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getType() {
        return type;
    }

    public void setType(String type) {
        this.type = type;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
    public void show(){
        System.out.println(this.name + this.type + this.age);
    }
}

测试

package com.myc.day02;

public class TestDog {
    public static void main(String[] args) {
        Dog dog1 = new Dog("花卷");
        System.out.println(dog1.getName());
        dog1.setName("haha");
        System.out.println(dog1.getName());
        Dog dog2 = new Dog("排骨");
        System.out.println(dog2.getName());
        new Dog();
        Dog dog4 = new Dog("xixi", "柯基", 2);
        dog4.show();
    }
}


注意事项

  • 如果你不提供构造方法, 系统默认提供无参构造方法
  • 如果你提供了构造方法, , 系统不会提供无参构造方法
  • 构造方法可以重载overload

相关文章

  • Jade - Java 面向对象1

    面向对象关键 面向对象 相对于 面向过程(一步一步) 类: 类是对象的模板 对象: 对象是类的一个实例 类: 一组...

  • 3. Java面向对象编程

    类与对象[1] Java是面向对象的汇编语言(面向机器)—— c语言(面向过程)—— java语言(面向对象) 类...

  • 第一章 JADE学习 - 简介与配置

    1. JADE简介 JADE(JAVA Agent DEvelopment Framework)是完全用Java语...

  • Java程序员必修内功心法!(内功修炼第二层)

    1,Java 面向对象 1.1类和对象 1.1.1. 面向对象和面向过程的区别 1,面向过程 :面向过程性能比面向...

  • Java面试题基础知识篇

    1Java 基础知识面向对象→ 什么是面向对象面向对象、面向过程 略面向对象的三大基本特征和五大基本原则答java...

  • 【技术贴】java面向对象的基本概念

    java面向对象概述 一,面向过程与面向对象 1,程序的发展经历了两个主要阶段:面向过程、面向对象。 2,对于面向...

  • 第七节 Java 类与对象

    1. 什么是面向对象 面向对象是学习 Java 必须掌握的知识,也是 Java 里的一个重难点。那什么是面向对象呢...

  • java SE目录

    java SE目录 java基础(一)java基础(二)关键字面向对象(一)面向对象(二)面向对象(三)集合(一)...

  • 第一章 面向对象

    第一章 面向对象 一、面向对象 1、面向对象和面向过程的区别 2、java中提供访问控制的原因 ​ (...

  • 1-Java面向对象-面向对象

    通过前面的学习我们对于java的语法结构有了一定的认识,掌握了分支结构,循环结构等常用的程序逻辑,也能运用这些知识...

网友评论

      本文标题:Jade - Java 面向对象1

      本文链接:https://www.haomeiwen.com/subject/qjbhdltx.html