java基本概念入门

  • 本月任务
java基本概念入门_第1张图片
本月任务.png
  • java工程的结构
    • project:工程名/应用名
    • src:源文件路径
    • package:包(相当于文件夹)
    • class:类
  • 常见工程类型:

    • java project
    • web project
    • maven project
    • web maven project
  • 结构解析

    • package—— 申明包路径,类自己申明在什么位置
    • import——引用外部类,指定要用到的外部类的路径(包路径+类名)
    • 申明当前类:
      • public:访问权限,公共的
      • class:申明是要定义一个类
      • 类名:自定义,首字母大写
      • extends:可选,继承某个类,只能继承1个。只能继承1个,可以是class实现类,也可以是abstract class抽象类。任何类的顶层继承类都是Object
      • implements:实现接口interface规定的方法,接口相当于角色,当前类就是接口的实现类
      • {}:类的实现内容

任何类都直接或者间接继承了Object对象
你自己有自己的生活,同时可以继承你爸的资产,同时你爸、你老板、你老婆/老公、你儿子等等还给你提了一堆职责要求


  • 定义类

    • package 包路径
    • import 引用类路径
    • public class 首字母大写的类名 extends 父类 implements 接口列表 {}
    • 属性
      • 实例属性:权限 类型 变量名 变量值
      • 类属性:带static的属性
    • 方法
      • 构造方法/构造器:权限 类名 (入参){}
      • 普通方法:权限 返回值类型 方法名 (入参) { return 返回}
      • main方法:public statis void main(String[] args){}

  • class文件的种类
    • class:实现类
    • abstract class:抽象类,抽象方法
    • interface:接口类
  • java三大特性:继承、多态、封装

    • 默认就有了继承的方法和属性

    • 如果对继承的方法不满意,可以重写

public class Puppy{
    public Puppy(){
    }
 
    public Puppy(String name){
        // 这个构造器仅有一个参数:name
    }
}
  • 重载:方法名相同,但是参数不同,就当成不同的方法

  • 同样名字的方法,参数不一样,就不算同一个方法

    • this:当前对象

    • super:父类

    • extends:继承

    • implements:实现

  • 重写(Override)与重载(Overload)

    • 重写:就是重新写从父类继承的方法,方法名、参数、返回值都不变,只是改变方法体的实现内容
    • 重载(overloading) :是在一个类里面,方法名字相同,而参数不同。返回类型可以相同也可以不同。
  • java三大特性:继承、多态、封装

    • 继承的硬币反面

    • 从下往上看:继承,下面的继承上面的。往上看是找共性

    • 从上往下看:多态,越往下形态越多。往下看,找特性

      Parent p = new Child();

  • 方法类型

    • 属性
    • 方法
    • 普通的方法:实现类的各类业务功能
      • construtor构造方法:默认不用写,方法名就是类名,没有返回类型
      • main方法:静态static,方法名只能是main,一个类只能有一个main方法
  • main方法

public static void main(String[] args){
      // 下面的语句将创建一个Puppy对象
      Puppy myPuppy = new Puppy( "tommy" );
   }
  • 1个类只有1个main方法

    • main方法的格式固定,名字只能是main

    • 同一个main方法,放在不同的类里面,执行结果一样

    • 启动一个java程序,即使执行一个main方法

  • 变量

    • 4个元素

      • 访问权限(public公共的、private私有的、protexted默认:同一个包共享),你的名字、你的私密日记、你的钱包
      • 变量类型:int、long、float、double、boolean、String、引用类型
      • 变量名
      • 变量值

所有的java类,都是引用类型(包括String),基本类型(8种int、long等)

  • 变量类型

    • 命令行与命令行共享:局部变量
    • 方法与方法共享:全局变量/实例变量
    • 实例与实例共享:类变量/静态变量,多了一个static关键字
    • 程序与程序:环境变量
  • 方法

    • 方法元素

      • 访问权限:public、private
      • 返回值类型:int、long、float、double、boolean、String、引用类型,
        void(不返回,没有return)
      • 方法名:
      • ()入参:
      • {}方法体:
      • return返回值:
  • 打印日志

    • 打印日志到控制台:
      • JavaScript:console.log("打印内容");
      • java:System.out.println("打印内容");快捷键:syso+alt+/
      • shell:echo "打印内容"
  • 执行java程序
    ① 先定义一堆类,类里面有一堆属性和方法

    ② 随便找一个类(习惯新建一个测试类),里面写一个main方法

    ③main方法里面去编排业务要执行的各个类的属性和方法

    ④ 执行main方法

java基本概念入门_第2张图片
Java程序的执行.png
  • 实例和构造方法
    • 使用一个java类,需要先实例化,也就是先调用构造器,生成一个实例对象,然后将对象保存到变量,然后通过对象的.去使用属性和方法
public static void main(String[] args){
Son s=new Son();
s.doHomeWork();
s.billionDream();
}
  • 实例化和初始化
    • 使用类,需要先
      • 实例化:new ,在内存中创建对象,分配存储空间
      • 初始化:构造方法,如果构造器为空,需要手动初始化设置属性
Son s2=new Son();
s.sno="1003";
s.score=85;

对比

Son s3=new Son("1003",80);
  • 实例图解

    java基本概念入门_第3张图片
    实例图解.png

  • 封装

    • 封装变化和权限
public class Person {
    public String name;
    public int age;
}
  • 常见封装1:get、set方法

    • 将属性从public改成private,不让外部直接取值、设置

    • 给每个属性开放两个public方法,get属性名()取值,set属性名(变量)设置

    • 就能保障内部属性改了,只要get、set方法名不变,外界就不需要变,而且可以在get、set方法体里面加任何逻辑

  • 常见封装2:javabean

    • bean:豌豆荚

    • 把很多个变量,封装到一个java类,然后用这个类,代替所有的变量

    • 好处:简化代码,便于管理

  • 常见封装3:把一个业务的一系列命令封装成方法

    • 要完成一个操作,需要执行很多的命令、调用很多的方法,可以把他们封装成一个新方法,直接调这个方法就搞定
  • 容器:各类容器和泛型

必备语法知识 语法内容 掌握程度
for循环 实现数字类循环
(知道循环次数的循环)
写道条件反射
while循环 实现逻辑类循环
(如调用接口是否成功)
写道条件反射
继承extends
多态implements
继承
实现
向上转型(转成父类、接口)
留个心
容器:
Array
ArrayList
HashSet
HashMap
Array:固定大小,单值String[] names=new String[20];
ArrayList:动态大小,单值
HashSet:动态大小,无序,单值,不重复
HashMap:动态大小,键值对
新建
添加数据
取单个数据
遍历所有数据
  • 容器(第三次强调的内容即包含容器)和泛型引申:
    ①存的数据有两种:值,键值对
容器名 动态/固态 存储数据类型 重复/不重复
Array 固定大小 有序,值 重复
ArrayList 动态大小 有序,值 重复
HashSet 动态大小 无序,单值 不重复
HashMap 动态大小 键值对 自动覆盖重复

②三个接口,三个对应实现类:

接口 对应实现类
List list=new ArrayList();——新建容器 list.add(值);——添加数据
list.get(下标);——取单个数据
for each遍历——遍历所有数据
Set set=new HashSet();——新建容器 set.add();——存放数据
Map map=new HashMap();——新建容器 map.put(key,value);——存放数据
map.get(value);——取单个数据
  • 备注

    • 单个的数据,用变量存
    • 批量的数据,用容器存
    • eg
      List list=new ArrayList();

    ③泛型

    • “型”就是类型
    • “泛”就是广泛
    • 也就是可以装各种各样的数据类型
List list=new ArrayList();//
Map map=new HashMap();
//存值,固定大小,可重复
        String[] names=new String[20];
        names[0]="guoya";
        
        //存值,变动大小,可重复
        List list=new ArrayList();
        list.add("guoya");
        list.add("guoya");

        //存值,变动大小,自动去重
        Set set=new HashSet();
        set.add("guoya");
        set.add("guoya");

        //存键值对,变动大小,key自动覆盖
        Map map=new HashMap();
        map.put("name", "guoya");




你可能感兴趣的:(java基本概念入门)