JavaEE入门级别最全教程2--初学者必看

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

JavaEE入门

如果你比较穷,一定要学计算机:计算机一定不是你翻身的行业,但一定会让你的生活变得更好。

我无力改变,只有奋斗,与其被卷掉,倒不如卷掉别人。选对了赛道,努力一把,起码让我过得更好一些。

面向对象与面向过程

 // 面向对象,是一种看待问题、解决问题的思维方式。
 // 类和对象的关系
 类是对象的集合
 对象是类中的个体
 // 类的设计{特征:"姓名",行为:"吃饭"}
     class 类名是一个标识符,遵循大驼峰命名法
复制代码

类的设计

 package com.laity.basicSyntax.day2.oop;
 
 /**
  * @author : Laity
  * @Project: JavaLaity
  * @Package com.laity.basicSyntax.day2.oop
  * @date Date : 2021年11月15日 22:13
  * @Description: 第一个类:复仇者类
  * <p>
  * 关于属性:
  *      1.每一个属性当不赋值的时候,是有默认值的
  *      2.属性,其实就是一个变量
  *      3.但是不推荐一行定义多个变量的形式
  */
 public class Avenger {
     // 使用属性,描述所有对象共有的特征
     public String name;
     public int age;
     public char gender;
     public int height;
     public int weight;
 
     public static int count;    // 用static修饰了 就是静态的属性(是可以被所有对象所共享的值)
 
     // 使用方法,描述所有的对象共有的功能
     public void eat(){}         // 非静态方法
     public void sleep(){
         System.out.println(name);  // 访问当前对象的名字
         System.out.println(age);  // 非静态成员可以调用方法
         eat();
         display();
     }
     public void beat(){}
 
     /**
      * 静态方法
      */
     public static void display(){
         System.out.println(count);
         display();
         // System.out.println(name);  // 不能直接访问本类中的 非静态成员。
     }
 
     public static void main(String[] args) {
 
     }
 }
复制代码

对象的实例化

package com.laity.basicSyntax.day2.oop;

/**
 * @author : Laity
 * @Project: JavaLaity
 * @Package com.laity.basicSyntax.day2.oop
 * @date Date : 2021年11月15日 22:25
 * @Description: 对象的实例化
 */
public class Program {
    public static void main(String[] args) {
        // 需要使用关键字 new 进行实例化
        Avenger avenger = new Avenger();
        Avenger captionAmerican = new Avenger();
    }
}


package com.laity.basicSyntax.day2.oop;

/**
 * @author : Laity
 * @Project: JavaLaity
 * @Package com.laity.basicSyntax.day2.oop
 * @date Date : 2021年11月15日 22:36
 * @Description: 类中的成员访问
 * 成员访问:
 *      非静态的: 需要使用对象进行访问
 *      静态的: 理论上来讲 静态的成员 是需要使用类来访问的,但是实际上,对象也是可以进行访问的
 */
public class Program1 {
    public static void main(String[] args) {
        // 静态的成员访问
        Avenger.count = 10;
        // 理论上来讲 静态的成员 是需要使用类来访问的,但是实际上,对象也是可以进行访问的
        //  静态的空间是唯一的,都有的对象是可以共享这块空间的
        //  虽然静态的属性是可以使用对象来访问,但是实际使用中,依然会用类来访问
        Avenger ironMan = new Avenger();
        ironMan.count = 100;   // 对象调用
        Avenger thor = new Avenger();
        thor.count = 200;
        System.out.println(ironMan.count);
        System.out.println(thor.count);

        // 静态方法的调用
        Avenger.display();  // 用类进行调用
    }

    /**
     * 非静态的成员访问
     */
    public static void nonStatic() {
        // 1. 访问类中的属性
        Avenger ironMan = new Avenger();

        ironMan.name = "Laity";
        ironMan.age = 18;
        ironMan.gender = '男';
        ironMan.eat();
        ironMan.sleep();
        ironMan.beat();

        Avenger captionAmerican = new Avenger();
        captionAmerican.name = "J哥";
        captionAmerican.age = 19;
        captionAmerican.gender = '男';
        captionAmerican.eat();
        captionAmerican.sleep();
        captionAmerican.beat();

        System.out.println(ironMan.age);
        System.out.println(captionAmerican.age);
    }
}
复制代码

静态和非静态

使用static修饰的属性、方法,被称为静态属性、静态方法
没有使用static修饰的属性、方法,被称为非静态属性、非静态方法,又被称之为实例属性、实例方法。
// 经验
    如果某些属性是属于不同的对象的,每一个对象的值都不同,可以设计为非静态。例如人的名字。
    如果某些属性是可以被所有的对象共享的,每一个对象看到的值都是相同的,可以设计为静态。例如对象的数量。
只需记住:
静态成员用类进行访问,非静态成员用对象进行访问。
静态方法中可以直接访问本类中的静态成员,不能直接访问本类中的 非静态成员。
非静态方法中可以直接访问本类中的静态成员,也可以直接访问本类的非静态成员。
    开辟空间时间不同,静态开辟的时间早
    我们在实际中经常用的是 非静态的(强调的是个体的差异性)
    静态的常常用于 工具类(Arrays等)
复制代码

类是一种自定义的数据类型

// 类,其实是一种自定义的引用数据类型,这种类型可以作用于属性、方法参数、返回值...,之前怎么使用的基本数据类型,就可以怎样使用这种类型。
数据类型Avenger(自定义的 引用数据类型)
    
package com.laity.basicSyntax.day2.opp2.tmp;

/**
 * @author : Laity
 * @Project: JavaLaity
 * @Package com.laity.basicSyntax.day2.opp2.tmp
 * @date Date : 2021年11月15日 23:56
 * @Description: 实现案例:上课了,老师让学生做自我介绍
 */
public class Program {
    public static void main(String[] args) {
        // 1.实例化相关的对象
        Teacher teacher = new Teacher();
        Student student = new Student();

        // 老师让学生自我介绍
        teacher.makeIntroduce(student);
    }
}

class Teacher {
    // 老师让某个学生做自我介绍
    public void makeIntroduce(Student student) {
        // 让学生做自我介绍
        student.introduceSelf();
    }
}

class Student {
    // 这个自我介绍是学生的功能
    public void introduceSelf() {
        System.out.println("大家好,我是XXX,今年XXX岁");
    }
}
复制代码

类是一种引用数据类型的体现

// 第一种
public static void main(String[] args) {
    // 类是一种引用数据类型的体现
    Person Laity = new Person();
    Laity.name = "Laity";
    change(Laity);  // 指向的是同一个地址
    System.out.println(Laity.name);
}
public static void change(Person person) {
    person.name = "Jge";
}
// 第二种
public static void main(String[] args) {
    // 类是一种引用数据类型的体现
    Person Laity = new Person();
    Laity.name = "Laity";
    Laity.age = 18;

    Cat cat = new Cat();
    Laity.cat = cat;
    Laity.cat.name = "小白";
    Laity.cat.furColor = "white";
    cat.name = "小猪";
    System.out.println("Laity的猫的名字是:"+Laity.cat.name);
}
复制代码

猜你喜欢

转载自juejin.im/post/7085573752204820517