栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

JAVADAY07

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

JAVADAY07

类与对象的创建

代码在opp package里面

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IBudrW4d-1647441872631)(C:UsersQiao.yanliDesktopJAVA学习markdown学习流程控制DAY07_1.jpg)]

package oop.Demo;

public class Person {
//一个类什么都不写,也有一个方法就是构造器
    //显示的定义构造器
    String name;
    //构造器的作用:
    //实例化初始值,使用new关键字,本质就是调用构造器


   public Person(){
        //this.name="BX";
    }
    //有参构造器,一旦定义了有参构造,无参构造必须下显示定义
    public Person(String name){
        this.name=name;
    }
}
//生成构造器的方法:code--generate--constructor
package oop.Demo;

public class Application {


    public static void main(String[] args) {
        //类:抽象的,实例化
        //类实例化后会返回一个自己的对象!
        //xiaoming就是student类实例化后的具体实例
        
          Person person=new Person("BX");
        System.out.println(person.name);
    }
}

栈与堆(方法区)

栈用来存放一些引用以及方法,堆用来存放具体的变量值,

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ESCZoXmy-1647441872633)(C:UsersQiao.yanliDesktopJAVA学习markdown学习流程控制DAY07_2.jpg)]

方法与类小结,很重要

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AeVjh2u5-1647441872634)(C:UsersQiao.yanliDesktopJAVA学习markdown学习流程控制DAY07_3.jpg)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SbTmO4IF-1647441872635)(C:UsersQiao.yanliDesktopJAVA学习markdown学习流程控制DAY07_5.jpg)]

八大基本类型有:整形(int32位 byte8位 short16位 long64位 )、浮点型(double64位 float32位)、字符新(char16位)、布尔型(boolean)

整形默认值为0,浮点型默认值为0.0

四大引用类型有:数组、类、接口、字符串

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tJRvj1sE-1647441872636)(C:UsersQiao.yanliDesktopJAVA学习markdown学习流程控制DAY07_6.jpg)]

(1)基本数据类型传值,对形参的修改不会影响实参;

(2)引用类型传引用,形参和实参指向同一个内存地址(同一个对象),所以对参数的修改会影响到实际的对象;

(3)String, Integer, Double等immutable(不可改变)的类型特殊处理,可以理解为传值,最后的操作不会修改实参对象。

封装

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8ojLqYLd-1647441872637)(C:UsersQiao.yanliDesktopJAVA学习markdown学习流程控制DAY07_7.jpg)]

package oop.Demo;
//提高程序的安全性,保护数据
//隐藏代码的实现细节
//统一接口
//系统可维护增加了
public class Package {
  private String name;
  private int id;
  private char sex;
  public String getName(){
      return this.name;
  }
  public void setName(String name){
      this.name=name;
  }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

  public char getSex() {
    return sex;
  }
  public void setSex(char sex) {
    this.sex = sex;
  }
}

Package s1=new Package();
        s1.setId(1823);
        System.out.println(s1.getId());
        s1.setName("博肖");
        System.out.println(s1.getName());
        s1.setSex('男');
        System.out.println(s1.getSex());
继承

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iNjf398J-1647441872639)(C:UsersQiao.yanliDesktopJAVA学习markdown学习流程控制DAY07_8.jpg)]

当父类被final时不能有子类,即继承人,断子绝孙

父类

package oop.Demo;

public class Person extends Object{
//一个类什么都不写,也有一个方法就是构造器
    //显示的定义构造器
    String name;
   public  int money=10_0000_0000;
    //构造器的作用:
    //实例化初始值,使用new关键字,本质就是调用构造器




    public Person(){
        //this.name="BX";
    }
    //有参构造器,一旦定义了有参构造,无参构造必须下显示定义
    public Person(String name){
        this.name=name;
    }
}
//生成构造器的方法:code--generate--constructor

子类

package oop.Demo;
//学生类
public class student extends Person {
    //属性
    int age;
    String name;
    //方法
    public  void study(){

        System.out.println(this.name+"正在学习");
    }
}

子类 继承父类就有父类所有的方法

子类可以用父类中所有public 的东西ctrl+h可以查看继承树

所有的类都直接或者间接继承Object的类

修饰符的优先级

public

protected

default

private

super使用

子类

package oop.Demo;

public class Teacher extends Parent {
    public Teacher() {
        //隐藏代码:调用了父类的无参构造,且必须在子类构造器的第一行
        super("调用父类的有参构造");

        System.out.println("Teather无参构造执行了");

    }

    public Teacher(String name) {
        this.name = name;
    }

    private String name="qinjiang";
    public void print(){
        System.out.println("student");
    }
    public void test1(){
        print();
        this.print();
        super.print();
    }
    public void test(String name){
        System.out.println(name);
        System.out.println(this.name);
        System.out.println(super.name);
    }
}

父类

package oop.Demo;

public class Parent {
protected String name="kuanshen";




    public Parent(String name) {
        this.name = name;
    }

    public void print(){
    System.out.println("Parent");
}
}

super的注意点

1.super 调用父类的构造方法,必须在子类构造方法的第一行

2.super 必须只能出现在子类的方法或者构造器中

3.super和this不能同时调用构造方法

superVSthis

代表的对象不同:

this :本身调用者的这个对象

super:代表父类对象的应用

前提:

没有继承也可以使用

只能在继承时才能使用

构造方法:

this():调用本类的构造方法

super():调用父类的构造

重写

1.需要有继承关系,子类重写父类的方法

2.方法名必须相同

3.参数列表必须相同

4.修饰符:范围可以扩大,不能缩小public>private

5.抛出的异常只能缩小,不能扩大

package oop.Demo;

public class App {
    public static void main(String[] args) {
        A a=new A();
        a.print();
        //父类的引用指向了子类
        // 静态时:方法的数据类型只与左边有关
        B b=new A();
        b.print();//调用的是B的方法
        //非静态时:子类可以对父类重写,快捷键code-->generate-->override
        //此时a和b调用的都是A的方法
        //重写时,方法需要是public

    }
}

package oop.Demo;

public class B {
    public  void print(){
        System.out.println("打印B");
    }
}

package oop.Demo;

public class A extends B {
    @Override //重写
    public void print() {
        System.out.println("打印A");
    }
}
多态
        A a=new A();
        a.print();
        //父类的引用指向了子类
        // 静态时:方法的数据类型只与左边有关
        B b=new A();
        b.print();//调用的是B的方法
        //父类不能调用子类的独有的方法,如果必须调用,需要强制转换
        ((A)b).eat();//强制转换,

1.多态指的是方法的多态,与属性无关

2.类型转换会有异常 ClassCastExeption!

3.多态的存在条件,方法可以被重写,以下情况方法不能被重写 :方法是 1.static 2.final 3.private

instanceof类型转换

x instaneof y判断x与y之间是否有父子关系

static关键字详解

可以修饰类 ,可以修饰方法,可以修饰属性

package oop.Demo;

public class Demo5 {
    private  static int age;
    private double score;
    public static void run(){
       // go();静态方法不能调用非静态方法
        //静态 方法可以调用静态方法
        System.out.println("paoqilai");
    }
    public void go(){
        run();//非静态方法可以调用静态方法
        System.out.println("zouqilai");
    }

    public static void main(String[] args) {
        Demo5.age=5;
       // Demo5.score=98;出错
        Demo5.run();
        //Demo5.go();出错

        Demo5 demo=new Demo5();
        demo.score=98;
        demo.go();

    }
}

匿名代码块
package oop.Demo;

public class Demo6 {
    {//2.匿名代码块
        System.out.println("匿名代码块");

    }
    static{//1.只执行一次
        System.out.println("静态代码块");
    }

    public Demo6() {
        System.out.println("构造方法");
    }

    public static void main(String[] args) {
        Demo6 d=new Demo6();//先执行代码块(1.静态代码块,2.匿名代码块),再执行3.构造方法
        Demo6 d1=new Demo6();//先执行代码块(1.静态代码块,2.匿名代码块),再执行3.构造方法
    }
}
静态导入包
package oop.Demo;
//静态导入包
import static java.lang.Math.random;
import static java.lang.Math.PI;
public class Demo7 {
    public static void main(String[] args) {
       // System.out.println(Math.random());
        System.out.println(random());
        System.out.println(PI);
    }
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/770535.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号