JSD2212班第二次串讲-面向对象阶段

1. 概述

系统介绍一下接下来阶段要学习的内容:
1.JAVA:
1.1 java语言基础
1.2 java面向对象阶段(很重要!起的承上启下!!)
1.3 API阶段(Application Interface )学会看字典 提供好的工具:String、Date、Scanner

1.4 网络编程阶段

2.web阶段
2.1 html、css、js(前端3剑客)
2.2 前端进阶:elementUI(快速搭建网页)、前端框架Vue(国人出品:尤雨溪)
2.3 数据库(重点!!)
2.4 数据库框架:Mybatis
主流三大框架(SSM):S:Spring、SpringBoot、Mybatis
2.5 数据库和java如何进行联系:JDBC(Java Database Collection)

3.Spring阶段(打通任督二脉)
3.1 SpringMVC(分层架构,遵循开发规则)
3.2 SpringAOP
3.2 SpringIOC
3.3 Vue和Spring如何联系(页面和java如何联系)
3.4项目:酷鲨商城、京淘项目
3.5 如何部署项目(上线)输入一个网址能够访问你的页面
3.6 Linux系统(稳定,Windows系统一直不关机会卡!!宕机,收费!!!)
达到企业用人的最低标准

4.微服务、大数据

2. 面向对象阶段复习

2.1 补充:

运算符/成员变量/局部变量串讲:

package cn.tedu.basic;

public class Test1 {
    public int a;
    public static void main(String[] args) {
        //运算符
        //  >>(二进制) ??
        //怎么算  面试题 8 除 2 的效率是最快的
        //计算机 位运算是最快的   1000   0100  15 >> 1   1111  0111=7
//        System.out.println(8 /2 );
//        System.out.println(8 >> 1);
//        System.out.println(15 >> 1);

        //  & |
        //1 & 2   true| false   C语言:0代表假 非0数代表真
        // 1: 0001
        // 2: 0010
        // 3  0000
//        System.out.println(1 | 2);
//        System.out.println(1 & 2);

        //成员变量和局部变量的区别???
        //1.位置:成员变量:类里方法外   局部变量:方法内
        //2.特征: 默认值:整形 0  浮点型 0.0 字符型:空字符\u0000  局部变量有默认值吗???
        // 拓展???
        //修饰符角度    成员变量可以被权限修饰符修饰符???
        //局部变量不允许使用权限修饰符 public int b = 0;//错
        //权限修饰符:public protected 默认 private
        //3.使用范围:成员变量可以被本类中的所有方法使用  局部只能被方法使用

        int c;  //局部变量没有默认值 使用时必须初始化!!!
//        System.out.println(c);
    }
}

2.数组、对象的内存

package cn.tedu.basic;

public class Test2 {
    public static void main(String[] args) {
        /*
        int[] arr1 = new int[]{1,2,3};
        int[] arr2 = arr1;    // 里面{1,2,3}

        arr2[1] = 10;    //  2换成10
        //问 arr1[1] =?
        System.out.println(arr1[1]);
        */
        //升级 我谈对象
//        Person p = new Person();
//        p.name = "张飞";
//        Person p2 = p;
//        change(p2);
//        System.out.println(p.name);  //实参  问:现在结果是什么 p.name = null

        //值传递/值拷贝    基本类型     传的是值
        // 引用传递  引用类型:String   传的是地址
        int a = 10;
        int b = a;
        b = 20;
        System.out.println(a);
    }

    public static void change(Person a){  //做了形参的操作  会不会影响实参
        a.name = null;
    }
}
class Person{
    String name;
}

在这里插入图片描述
在这里插入图片描述

3.方法(可变类型参数、重载)

package cn.tedu.basic;

public class Test2 {
    public static void main(String[] args) {
        //方法的重载:在同一个类中  方法名相同 参数列表不同的现象   : 方法的签名:方法名+参数列表
        //自己做一个功能
        //我想要模拟System.out.println()方法,
        // 可以打印int 类型 double 类型 char 类型 方法名:print
        System.out.println(print(1));
        //问重载的好处是什么????
        //使程序的拓展性变强
        //提高了代码的复用性 ??? 方法 一次书写 到处使用

        //可变参数类型???
        //需求是打印2个整数的和??
        System.out.println();
        //需求是打印3个整数的和??
        //需求是打印4个整数的和??
        //可变参数类型    数量是不确定的!!!
        //为什么
        //看三国演义  
        //诸葛亮北伐
        //凡兵法韬略  说透了  术是表 道才是根本  你要是悟透了这个道理 比你学上千种阵法还要重要
        // 解决有多个相同参数 但是又不想重复书写参数的问题
        //补充:细节   一个参数列表可以有几个可变类型   只能有一个
        //2 .必须放在参数列表的最后
        int res = sum(1, 1, 1);
        System.out.println(res);
    }

    public static int sum(int...data){  //可变参数类型  底层就是一个数组 data是一个数组
        int sum = 0;
        for (int i = 0;i < data.length;i++){
            sum+=data[i];
        }
        return sum;
    }



    public static int  print(int data){  //int 类型
        return data;
    }

    public static double  print(double data){  //double 类型
        return data;
    }

    public static char  print(char data){  //double 类型
        return data;
    }
}

2.2 面向对象

术是表 道才是根本

2.2.1 类

类是实际生活中事物的一种抽象??/模板、图纸
动物:猫、狗、鸟……
class 类名{}

2.2.2 对象

类的具体实现(物象化、实例化)
new 类名

2.2.3 构造方法

语法:
1.方法名和类名相同
2.无返回值类型
3.权限修饰符
4.可以重载

道???
为什么使用?诞生的意义是什么

完成对象的初始化(赋值)

现实生活:
手机:恢复出厂设置:打电话、发短信

使用时机
创建对象的时候

构造代码块:
语法:{} 位置:类里方法外
作用:提取构造方法的共性 {打电话、发短信}

加载时机:比构造方法快

例子:
public Phone(){

}

public Phone(int a){

}

疑问:假如发生了继承关系,请说明:子类的构造方法、代码块、父类的构造方法
执行顺序:父类的构造方法 > 构造代码块 >构造方法

package cn.tedu.basic;

public class Test3 {
    public static void main(String[] args) {
        new Dog();
    }
}
class Animal{
    public Animal(){
        System.out.println("我是父类的构造方法");
    }
}
class Dog extends Animal{

    public Dog(){
        System.out.println("我是子类的构造方法");
    }

    {
        System.out.println("我是子类的构造代码块");
    }
}

2.2.4 代码块

静态代码块、构造代码块、局部代码块
局部代码块:
语法:{} 位置 类里方法内
道(作用):控制变量的作用范围

问:变量的作用范围,一般来说越小越好
局部变量只能在方法内

静态代码块
语法:static {} 位置:类里方法外
作用:从加载时机考虑,当我的资源需要第一时间被程序读取,并且只读取1次,考虑使用静态代码块

2.2.5 this/super

this
是什么:指代当前对象(谁new 就是谁)???
this可以应用的领域:
可以变量、方法(构造方法、普通方法)、不行类(没有)

为什么要使用this:当我的变量名发生冲突时(名字一模一样) ,java会采取就近原则,但是我自己想要指定使用本类的变量,this应运而生

package cn.tedu.basic;

public class Test5 {
    public static void main(String[] args) {

    }
}
class Student{
    String name;
    String no;   //学号   201911310107

    public Student() {

    }

    public Student(String name, String no) { //起名字的难度大了 形参叫什么名字 成员变量叫什么名字 很累
        //this();  //只能在构造方法内调构造方法   为什么有这个功能???业务需要
        //现在的需求  因为形参和成员变量方法名重复了,如果不使用this默认会使用就近原则
        //问:我不想使用this,又想使用成员变量   
        /*
        Student this = new Student();
        this.name = name;
        
        Fu super = new Fu();
        super.xx
         */
        this.name = name;
        this.no = no;

    }

    /*public Student(String name,String no){
            this.name = name;
            this.no = no;
        }*/
    public void testThis(){

        name = "张飞";//变量功能只有两个操作 1.打印 2.赋值
        a();

    }
    public void a(){

    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值