07_static_JavaBean_继承_super/this

Java学习10--面向对象进阶1 this:理解为一个变量,表示当前方法调用者的地址值;super:代表父类存储空间。 阅读详情

第一章.static关键字

1.static关键字的介绍和使用

1.概述:代表的是静态关键字
2.使用:
   a.修饰一个成员变量
     权限修饰符 static 数据类型 变量名

   b.修饰一个方法
     权限修饰符 static 返回值类型 方法名(形参){
           方法体
           return 结果
    }

3.static的特点:
   a.静态成员属于类成员,不属于对象成员,非静态成员属于对象成员
   b.静态成员会随着类的加载而加载
   c.静态成员优先于对象存在
   d.凡是根据static关键字所在的类创建出来的对象,都可以共享这个静态成员

4.调用:
   类名直接调用
public class Student {
    int id;
    String name;
    static String classRoom;
}
public class Test01 {
    public static void main(String[] args) {
        Student.classRoom = "教研室11";
        Student s1 = new Student();
        s1.id = 1;
        s1.name = "张三";
        System.out.println(s1.id+"..."+s1.name+"..."+Student.classRoom);

        System.out.println("====================");
        Student s2 = new Student();
        s2.id = 2;
        s2.name = "李四";
        System.out.println(s2.id+"..."+s2.name+"..."+Student.classRoom);
    }
}

2.static成员的访问特点

1.在静态方法中能不能直接调用非静态成员 -> 不能
  new对象调用
2.在静态方法中能不能直接调用静态成员 -> 能
  a.直接调用
  b.类名调用
3.在非静态方法中能不能直接调用非静态成员->能
  a.直接调用
  b.new对象调用
4.在非静态方法中能不能直接调用静态成员 -> 能
  a.直接调用  
  b.类名调用

总结:

1.只要是调用非静态的成员,能直接调用就直接调用,不能直接调用就new对象调用

2.只要是调用静态的成员,能直接调用就直接调用,不能直接调用就类名调用

3.static使用场景

1.问题:既然静态成员这么好使用,那么将来能不能将所有的成员都定义成静态的呢? -> 不能
2.原因:如果将所有成员都定义成静态成员,那么静态成员不管是有用的,没用的,都会随着类的加载而加载,会占用内存   
3.static成员什么时候使用呢?
  定义工具类的时候,工具类中的成员都是静态成员
    
4.啥是工具类:拥有多个通用性功能的类
5.工具类怎么形成:
  将来我们发现在多个类中都要频繁实现某个功能,我们就不用在每个类中写重复代码,重复实现同一个功能了,我们可以将这些通用的代码封装到工具类中
      
6.工具类要求:
  a.构造私有化
  b.成员都是静态的         
public class Test01 {
    public static void main(String[] args) {
        int[] arr = {1,2,3,4,5};
      /*  int sum = 0;
        for (int i = 0; i < arr.length; i++) {
            sum+=arr[i];
        }
        System.out.println(sum);*/

        System.out.println(ArraysUtils.sum(arr));
    }
}

public class Test02 {
    public static void main(String[] args) {
        int[] arr = {3,3,4,5,3,3,54,6};
        /*int sum = 0;
        for (int i = 0; i < arr.length; i++) {
            sum+=arr[i];
        }*/

        System.out.println(ArraysUtils.sum(arr));
    }
}

public class ArraysUtils {
    //构造私有
    private ArraysUtils(){}

    public static int sum(int[] arr){
        int sum = 0;
        for (int i = 0; i < arr.length; i++) {
            sum+=arr[i];
        }
        return sum;
    }
}

除了工具类的成员是静态的,其他类的成员一般都是非静态的

第二章.JavaBean的作用

1.将来的javabean都是和数据库中的表做对应的
2.对应关系:
  a.类名 -> 表名
  b.属性名 -> 列名
  c.属性的类型 -> 每一列的类型
  d.属性值 -> 每个单元格中的数据
  e.对象 -> 每一行数据
    表中的第一行:User user = new User(1,"tom","111")
    表中的第二行:User user = new User(2,"jack","222")

1.1.javabean在开发中的实际运用_添加功能

利用javabean将页面上的数据封装起来,然后一层一层传递给dao层,在dao层中将封装的数据获取出来,添加到数据库中

1.2.javabean在实际开发中运用_查询功能

利用javabean将每一条查询出来的数据封装起来,然后将多个javabean放到一个集合中,最终响应给页面集合,在页面上遍历展示

第三章.对象数组

1.概述:数组中的元素存的是对象
2.注意:存的是对象,取出来的还是对象    
public class Person {
    private String name;
    private int age;

    public Person() {
    }

    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public String getName() {
        return name;
    }

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

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
}
public class Test01 {
    public static void main(String[] args) {
        /*
           1.存int型整数的数组:int[]
           2.存double型的数组:double[]
           3.存String型的数组:String[]
           4.存Person型的数组:Person[]
         */
        //定义存储Person对象的数组
        Person[] arr = new Person[3];
        Person p1 = new Person("张三", 18);
        Person p2 = new Person("李四", 20);
        Person p3 = new Person("王五", 22);
        //将三个对象放到数组中
        arr[0] = p1;
        arr[1] = p2;
        arr[2] = p3;

        //遍历
        for (int i = 0; i < arr.length; i++) {
            System.out.println(arr[i].getName()+"..."+arr[i].getAge());
        }
    }
}

第四章.继承

1.什么是继承

面向对象三大特征: 封装 继承 多态

1.父类怎么形成的:
  将共有的成员抽取出来,放到父类中,子类想直接用这些抽取出来的
成员,就直接继承父类即可

2.继承格式: extends
  子类 extends 父类{}

3.注意:
  a.构造方法不能继承,也不能被重写
  b.静态方法能继承,但是不能被重写
  c.子类可以继承父类中私有和非私有成员
     但是子类不能直接使用父类中私有成员

4.继承怎么学:
   不要从是否"拥有"层面学
   要从是否能直接"使用"层面学

5.继承:是一种代码的设计思想,理念
  可一使用也可以不使用,但是使用就比不使用强
  所以建议使用

2.继承如何使用

1.定义一个父类
2.定义一个子类 extends 父类
3.创建子类对象,调用父类中非私有成员
public class Employee {
    String name;
    int age;
    public void work(){
        System.out.println("员工正在工作...");
    }
}
public class Teacher extends Employee{
}
public class Test01 {
    public static void main(String[] args) {
        Teacher t1 = new Teacher();
        t1.name = "张三";
        t1.age = 18;
        System.out.println(t1.name+"..."+t1.age);
        t1.work();
    }
}

3.继承中,成员变量和成员方法的访问特点

3.1 成员变量

3.1.1 子类和父类中的成员变量不重名:
public class Fu {
    int numFu = 10;
}
public class Zi extends Fu{
    int numZi = 100;
}
public class Test01 {
    public static void main(String[] args) {
        Fu fu = new Fu();
        System.out.println(fu.numFu);

        Zi zi = new Zi();
        System.out.println(zi.numFu);
        System.out.println(zi.numZi);
    }
}
2.1.2.子类和父类中的成员变量重名
public class Fu {
    int numFu = 10;
    int num = 1000;
}
public class Zi extends Fu{
    int numZi = 100;
    int num = 10000;
}
public class Test01 {
    public static void main(String[] args) {
        Fu fu = new Fu();
        System.out.println(fu.numFu);
        System.out.println(fu.num);//父类的
        System.out.println("====================");
        Zi zi = new Zi();
        System.out.println(zi.numFu);
        System.out.println(zi.numZi);
        System.out.println(zi.num);//子类的
        System.out.println("====================");
        //多态创建对象方式->父类引用指向子类对象
        Fu fu1 = new Zi();
        System.out.println(fu1.num);//父类的
    }
}

继承中成员变量访问特点:看等号左边是谁,先调用谁中的成员变量

2.2 成员方法

2.2.1.子类和父类中的成员方法不重名:
public class Fu {
    public void methodFu(){
        System.out.println("父类方法");
    }
}
public class Test01 {
    public static void main(String[] args) {
        Fu fu = new Fu();
        fu.methodFu();

        System.out.println("=====================");
        Zi zi = new Zi();
        zi.methodZi();
        zi.methodFu();
    }
}
public class Zi extends Fu{
    public void methodZi(){
        System.out.println("子类方法...");
    }
}
2.2.2.子类和父类中的成员方法重名
public class Fu {
    public void methodFu(){
        System.out.println("父类方法");
    }

    public void method(){
        System.out.println("父类方法");
    }
}
public class Zi extends Fu{
    public void methodZi(){
        System.out.println("子类方法...");
    }

    public void method(){
        System.out.println("子类方法");
    }
}
public class Test01 {
    public static void main(String[] args) {
        Fu fu = new Fu();
        fu.methodFu();
        fu.method();//父类的方法

        System.out.println("=====================");
        Zi zi = new Zi();
        zi.methodZi();
        zi.methodFu();
        zi.method();//子类的方法

        System.out.println("=====================");

        //多态形式创建对象
        Fu fu1 = new Zi();
        fu1.method();//子类的方法
    }
}

继承中成员方法访问特点:看等号右边是谁,先调用谁中的方法,子类没有找父类

4.方法的重写

1.前提:必须有子父类继承关系
2.概述:子类中有一个和父类方法名以及参数列表一样的方法,子类中的这个方法就叫做重写的方法
3.如何检测这个方法是否为重写的方法:
  方法上加上注解: @Override
4.如何访问重写的方法:
  看new的是谁,new的子类,调用方法一定是重写的方法
public class Fu {
    public void method(){
        System.out.println("父类方法");
    }
}
public class Zi extends Fu{

    @Override
    public void method(){
        System.out.println("子类方法");
    }
}
public class Test01 {
    public static void main(String[] args) {
        Zi zi = new Zi();
        zi.method();
    }
}

4.1.注意事项

1. 子类方法重写父类方法,必须要保证权限大于等于父类权限。(权限修饰符)
   public  -> protected -> 默认 -> private 
2. 子类方法重写父类方法,方法名和参数列表都要一模一样。
3. 私有方法不能被重写,构造方法不能被重写,静态方法也不能重写
4. 子类重写父类方法之后,返回值类型应该是父类方法返回值类型的子类类型  
   一般情况下,子类重写父类方法之后,都一样
5. 私有方法可以继承但是不能被重写,构造方法不能被继承,也不能被重写,静态的能继承,但不能重写
/**
 * Object类: 所有类的父类
 * String类:String也属于Object的子类
 */
public class Fu {
    public void method(){
        System.out.println("父类方法");
    }

    public Object method01(){
        System.out.println("父类方法01");
        /*
           return null没有特殊含义
           仅仅是为了让这个方法有个返回值,不报错
         */
        return null;
    }
}
public class Zi extends Fu{
    @Override
    public void method(){
        System.out.println("子类方法");
    }

    @Override
    public String method01(){
        System.out.println("子类方法01");
         /*
           return null没有特殊含义
           仅仅是为了让这个方法有个返回值,不报错
         */
        return null;
    }
}

4.2.使用场景

当子类想对父类中的某个方法进行升级改造,就可以在子类中重写父类中的方法,在子类中做具体实现
public class OldPhone {
    public void call(){
        System.out.println("打电话");
    }
    public void sendMessage(){
        System.out.println("发短信");
    }
    public void show(){
        System.out.println("显示手机号");
    }
}
public class NewPhone extends OldPhone{
    @Override
    public void show(){
        System.out.println("显示手机号");
        System.out.println("显示归属地");
        System.out.println("显示头像");
    }
}
public class Test01 {
    public static void main(String[] args) {
        NewPhone newPhone = new NewPhone();
        newPhone.call();
        newPhone.sendMessage();
        newPhone.show();
    }
}

5.继承的特点

1.继承只支持单继承,不能多继承 -> 一个子类不能同时继承多个父类
  public class Zi extends Fu1,Fu2{} -> 不行
2.继承支持多层继承
  public class Zi extends Fu{}
  public class Fu extends Ye{}
3.一个父类可以有多个子类
  public class A extends B{}
  public class C extends B{}

6.继承中构造方法的特点

1.继承中构造方法的特点:
  创建子类对象时,先初始化父类(先调用父类无参构造)
2.原因:
  在构造方法的第一行默认有一个super(),不写也有
3.super()代表的是调用父类无参构造      
public class Fu {
    public Fu(){
        //super();
        System.out.println("父类无参构造方法");
    }
}
public class Zi extends Fu{
    public Zi(){
        //super();
        System.out.println("子类无参构造方法...");
    }

    public Zi(String name){
        //super();
        System.out.println("子类有参构造方法...");
    }
}
public class Test01 {
    public static void main(String[] args) {
        Zi zi = new Zi();
        Zi zi1 = new Zi("张三");

    }
}

7.super和this的具体使用

7.1 super的具体使用

1.概述:super代表的是父类引用
2.作用:在子类中调用父类的成员(成员变量,成员方法,构造)
3.使用:
  调用父类构造方法:在子类的构造中使用
                super() 调用父类无参构造
                super(实参) 调用父类有参构造
      
  调用父类成员变量:super.成员变量名
               
  调用父类成员方法:super.方法名(实参)
public class Fu {
    int num = 10;
    public Fu(){
        System.out.println("父类无参构造方法");
    }

    public Fu(String name){
        System.out.println("父类有参构造方法");
    }

    public void show(){
        System.out.println("父类方法");
    }
}
public class Zi extends Fu {
    int num = 100;
    public Zi(){
        super();//默认调用父类的无参构造方法
        System.out.println("子类无参构造方法...");
    }

    public Zi(String name){
        super(name);//默认调用父类的有参构造方法
        System.out.println("子类有参构造方法...");
    }

    @Override
    public void show(){
        System.out.println(num);//子类中的100
        System.out.println(super.num);//父类中的10
        System.out.println("子类方法...");

        super.show();//父类方法
    }
}
public class Test01 {
    public static void main(String[] args) {
        Zi zi = new Zi();
        Zi zi1 = new Zi("张三");

        System.out.println("===================");

        zi.show();

        System.out.println("===================");

        zi.show();
    }
}

7.2 this的具体使用

1.概述:代表的是当前对象
2.作用:调用当前对象中的成员
3.使用:
  调用当前对象的构造: this()  或者 this(实参)
  调用当前对象的成员变量: this.成员变量名
  调用当前对象的成员方法: this.方法名(实参)
public class Person {
    String name = "张三";
    public Person(){
        //this("abc");//调用本类有参构造
        System.out.println("无参构造");
    }
    
    public Person(String name){
        this();//调用本类无参构造
        System.out.println("有参构造");
    }
    public void show(){
        String name = "李四";
        System.out.println(name);//李四
        System.out.println(this.name);//张三
        System.out.println("show方法...");
    }
    
    public void method(){
        //this.show();
        show();
        System.out.println("method方法");
    }
}

注意:super,this如果在构造中使用,都必须要在构造第一行,所以this和super在构造方法中不能同时出现

8.问题:如何为父类中private的成员变量赋值

8.1.利用set赋值

public class Employee {
    private String name;
    private int age;

    public Employee() {
    }

    public Employee(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public String getName() {
        return name;
    }

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

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
}

public class Teacher extends Employee{
}
public class Test01 {
    public static void main(String[] args) {
        Teacher t1 = new Teacher();
        t1.setName("张三");
        t1.setAge(18);
        System.out.println(t1.getName()+"..."+t1.getAge());
    }
}

8.2.利用构造方法赋值

public class Employee {
    private String name;
    private int age;

    public Employee() {
    }

    public Employee(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public String getName() {
        return name;
    }

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

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
}
public class Teacher extends Employee{
    public Teacher() {
    }

    public Teacher(String name, int age) {
        super(name, age);
    }
}

public class Test01 {
    public static void main(String[] args) {
        Teacher t1 = new Teacher();
        t1.setName("张三");
        t1.setAge(18);
        System.out.println(t1.getName()+"..."+t1.getAge());

        System.out.println("===================");
        Teacher t2 = new Teacher("李四",20);
        System.out.println(t2.getName()+"..."+t2.getAge());
    }
}

基于深度强化学习的柔性作业车间动态调度 在追求敏捷和灵活的生产调度方面,处理不可预测的动态事件的能力变得越来越重要。与此同时,生产系统中的网络-物理融合产生了大量需要实时挖掘和分析的工业数据。为了便于这种实时控制,本研究提出了一种分层分布式的体系结构来解决动态柔性作业车间调度问题。采用双深度Q网络算法(DDQN)训练调度智能体,捕捉生产信息与调度目标之间的关系,为具有恒定任务到达的柔性作业车间实时做出调度决策。为了处理动态调度中问题的可变规格说明,提出了专门的状态和动作表示法。此外,还提出了一种代理奖励整形技术(surrogate reward 阅读详情

相关推荐

LightTools 中LCD投影仿真的checkerboard pattern偏振控制技术解析

本文深入解析了在LightTools软件中进行LCD投影仿真时,利用checkerboard pattern(棋盘格图案)结合偏振控制技术来模拟液晶面板像素开关、提升图像对比度的核心方法。文章从实战角度出发,详细拆解了通过设置波片(如1/2波片)和偏振片来操控S光与P光转换的原理,并分享了在LightTools中搭建仿真模型、使用VBA脚本自动化配置参数以提高效率的实用技巧,为光学工程师优化投影系统仿真流程提供了清晰指导。

weixin_29305313的博客 343

static关键字和面向对象三大特征之一 继承

类变量也叫静态变量 / 静态属性,是该类的所有对象共享的变量任何一个该类的对象去访问它,取到的都是相同的值修改它也是同一个变量(从前面的图也可看出)// 访问修饰符 static 数据类型 变量名;[推荐]// static 访问修饰符 数据类型 变量名;类方法也叫静态方法static 数据返回类型 方法名() { } // 推荐static 访问修饰符 数据返回类型 方法名() { }类方法的调用方式类名.类方法名(推荐)对象名.类方法名(前提:满足访问权限)

2301_77473998的博客 896

遥感大模型核心技术之自监督预训练技术研究(2025年9月版)

本文系统探讨了自监督预训练技术在遥感大模型构建中的核心作用。随着遥感数据进入"大数据"时代,传统监督学习面临"数据丰富、标签贫乏"的瓶颈,而自监督预训练通过设计代理任务从无标签数据中学习特征表示,成为驱动大模型发展的关键引擎。文章分析了遥感领域对自监督预训练的三大独特挑战:多源异构性、地理空间约束和时空动态性,并提出了针对性解决方案:掩码自编码(MAE)技术及其演进、地理对比学习与多模态融合、位置感知预训练与多任务学习。

panshengwu的博客 842

面向对象(static+继承)

/ 成员变量// '男' '女'// 无参数构造方法// 有参数构造方法我们已经知道面向对象中,存在类和对象的概念,我们在类中定义了一些成员变量,例如name,age,sex ,结果发现这些成员变量,每个对象都存在(因为每个对象都可以访问)。而像name ,age , sex确实是每个学生对象都应该有的属性,应该属于每个对象。所以Java中成员(变量和方法)等是存在所属性的,Java是通过static关键字来区分的。static关键字在Java开发非常的重要,对于理解面向对象非常关键。

lohath的博客 235

C++经典面试题100例及答案

答:把一些具有共性的对象归类后形成一个集合,也就是所谓的类。答:这样可以提高编译效率,因为分开的话只需要编译一次生成对应的.obj文件后,再次应用该类的地方,这个类就不会被再次编译,从而大大的提高了编译效率。答:这种函数会自动为内联函数,这种函数在函数调用的地方在编译阶段都会进行代码替换。答:常对象是指在任何场合都不能对其成员的值进行修改的对象。答:所谓的回调函数,就是预先在系统的对函数进行注册,让系统知道这个函数的存在,以后,当某个事件发生时,再调用这个函数对事件进行响应。

usstmiracle的博客 3万+

AutosarMCAL开发——基于TC3x系列时钟系统浅析

本文为博主个人学习总结记录,如有不正,欢迎指正。

qq_45583706的博客 888

面向对象进阶——static、继承

需求:在实际开发中,经常会遇到一些数据使用的工具类请按照如下要求编写一个数组的工具类:ArrayUtil提供一个工具类方法printArr,用于返回整数数组的内容。返回的字符串格式如:[10,20,50,34,100](只考虑整数数组,且只考虑一维数组)提供这样一个工具方法getAverage,用于返回平均分。(只考虑浮点型数组,且只考虑一维数组)定义一个测试类TestDemo,调用该工具类的工具方法,并返回结果。工具类:测试类:需求:定义一个集合,用于存储3个学生对象。

2301_80287479的博客 1069

Easy系列PLC远程IO模块的安装配置和地址访问(EtherCAT总线)

EtherCAT分布式时钟DC(SOEM源码解析)EtherCAT分布式时钟DC(SOEM源码解析)_soem dc同步-优快云博客文章浏览阅读1.2k次。分布式时钟(DC,Dsitributed Clock)可以使所有 EtherCAT设备使用相同的系统时间,从而控制各设备任务的同步执行。_soem dc同步1200PLC连接分布式IO组态编程应用(ES200SP固件版本不同解决方法)

RXXW_Dor的博客 171

static关键字和块和包机制和继承super

static关键字 static:关键字静态的 被static关键字修饰的内容为静态内容 成员是属于对象的跟随对象使用,应为成员在对象的堆内存空间中,static修饰的静态的内容是属于类,可以随类使用。 静态变量都是独一份的,不存在对象的堆内存中,在静态区中在类第一次加载完成之后就会初始化静态内容。 成员的需要创建对象才在对象堆中存在成员,没有对象就没有成员。 在静态的内容中可以直接使用静态内容,但是不能直接使用成员内容,需要跟随对象使用成员,在成员内容中可以直接使用静态也可以直接使用成员 public c

fsx9250的博客 209

【新能源汽车DCDC变换器测试优化全攻略:解决电能质量/发热/过充等核心痛点】

高压直流转12V低压的DCDC变换器是新能源汽车电源系统的核心枢纽,承担着为整车低压附件、控制器及12V蓄电池供电/补电的关键作用。在新能源汽车乘用车、商用车等不同车型实际运营中,因PDU内DC/AC等模块干扰、DCDC自身设计缺陷、整车匹配性不佳及测试验证不充分,频发12V输出电能质量差导致后端元器件烧毁、变换器发热严重、蓄电池过充/欠充、智能补电功能失效等问题,还伴随低压侧电压瞬跌/浪涌、电磁干扰超标、振动后接触不良、高温下效率骤降等行业高频故障,直接影响整车可靠性和运营安全性。本文基于国标。

优快云-新能源汽车研发测试专业博主 1266

HFSS实战项目——Ku波段微带发夹线滤波器

保姆级教程!!!看完必会,非常详细!!!Ku频段5阶切比雪夫微带线带通滤波器的仿真实例。首先介绍了滤波器的技术指标和基本理论知识,重点介绍了滤波器的耦合系数和外部品质因数。建立了谐振器的设计模型、耦合系数与谐振器间距的设计模型、外部品质因数与抽头位置的设计模型和滤波器整体电路的模型。详细介绍了谐振器设计模型的建立步骤。

2401_87464239的博客 3040

java—1 & 封装

封装

x1998fly的博客 866

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

JavaBean

二:JavaBean 面向对象的三大特性: 封装 继承 多态 javabean规范: 1.类是公共的 2.至少提供一个空构造 3.私有的属性 4.公共的访问方式 5.重写toString与equals方法 2.1 构造器 2.1.1 构造函数 构造方法 作用: 为对象初始化信息(为对象的成员变量赋值) 使用: 跟随new关键字一起使用,不能单独调用。 注意: 方法名称与当前类名一致; 如果一个类中没有显示的定义构造器,编译器会自动默...

qq_56257181的博客 841

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Java基础(二)——面向对象和类

先从简化的Java内存模型开始 栈区 基本数据类型的存储 引用数据类型的存储 堆区 方法区 面向对象要点(没对象的好好学、有对象的好好看) 类基础 方法中的不定长参数 这就是this? 返回一个this试试? this的特殊用法 看完之后就想静静的静态关键字static static与JavaBean 单例模式 什么是单例模式 单例模式的实现步骤 举例 内存分析 构造块和静态代码块 终于到final了 访问控制 封装 继承 继承的几大特点 老汉的遗产并不是全给娃娃的噢 子类如何使用父类的构造方法? 方法重写

荆州拉人去编程 4253

Day7_面向对象_封装继承

this的作用:代表的是当前对象(哪个对象调用的this所在的那个方法,this就代表哪个对象),可以区分重名的成员变量和局部变量 ->this.后面的就是成员的。如果写了有参构造,jvm将不再提供无参构造,所以建议无参的,有参的构造都写出来。d.凡是根据static关键字所在的类创建出来的对象,都可以共享这个静态成员。a.静态成员属于类成员,不属于对象成员,非静态成员属于对象成员。每个类中都默认有一个无参构造,即使不写,jvm也会默认提供一个。1.调用当前对象的构造:在本类的构造中使用。

weixin_64901894的博客 913

11Java面向对象进阶 - static、继承

/ 成员变量 public String name;// '男' '女' public int age;// 无参数构造方法 public Student() {} // 有参数构造方法 public Student(String a) {} }我们已经知道面向对象中,存在类和对象的概念,我们在类中定义了一些成员变量,例如name,age,sex ,结果发现这些成员变量,每个对象都存在(因为每个对象都可以访问)。

zjl的博客 579

Java:封装与继承

目录this 关键字static 关键字block封装 javaBean类的继承与权限控制访问控制方法的重写super关键字 this 关键字 在类的方法定义中使用的 this 关键字代表使用该方法的对象的引用。 this 即”自己”,代表对象本身,谁调用代表谁。在成员方法中或构造器中隐式的传递。 作用如下: 1、this 在构造器中只能放在第一行 2、this.属性避免属性和形参、局部变量同名,...

YellowJerry的博客 276

Java面向对象编程:封装、继承与多态实战解析

面向对象编程(OOP)是现代软件开发的核心范式,其三大特性封装、继承和多态构成了代码组织的基石。封装通过访问控制实现数据隐藏,保护对象内部状态;继承建立类层次结构实现代码复用;多态则允许同一接口处理不同对象类型。在Java语言中,这些特性通过private/protected修饰符、extends关键字和方法重写等机制实现。以银行账户系统为例,Account类封装账户信息,SavingsAccount和CreditAccount通过继承扩展功能,而多态使得统一处理各类账户成为可能。掌握这些核心概念不仅能提升

congsikuai0611的博客 351

Java 面向对象-上(封装,继承)

本文系统介绍了Java面向对象编程的核心概念,包括类和对象、封装、继承、多态三大特性。详细讲解了类的组成(成员变量、成员方法)、对象创建与使用、封装实现(private修饰符和get/set方法)、构造方法(空参/有参)、标准JavaBean规范。重点阐述了继承机制(extends关键字)、方法重写(@Override)、super和this关键字的使用场景,以及静态成员(static)的特点。通过大量代码示例演示了面向对象的各种语法规则和最佳实践,如工具类设计、父类私有成员访问等,为Java面向对象编程提

2601_96000876的博客 254

Java面向对象基础

修饰类,就是抽象类;修饰方法,就是抽象方法。

mkbird的博客 875

Java学习笔记--汇总

*在校学生有属性:姓名、年龄、身高、体重。行为:学习。实现以下需求要求 1:大一新生,张三,18 岁,183cm,60kg,刚进大学努力学习。要求 2:大二期间张三体重增加了 10kg要求 3:大三期间张三减肥成功,身高增加 2cm,体重减少 3kg要求 4:打印大学毕业之后,张三的所有信息* *///属性//姓名//年龄//身高//体重//get/set方法//姓名name=value;//年龄age=value;return age;//身高//体重。

m0_67307574的博客 528

Java学习Day06

的,那么如果子类需要使用就要提供相应的setXxx 和 getXxx 方法,这些方法是 public 公共的,子。9、继承中成员变量的访问特点:子父类中,如果出现了重名的成员变量,那么将要使用到super关。被JVM调用,不用创建对象,因为main方法是静态的,所以测试类中其他方法也需要是静态的。1、构造方法:构造方法又名构造器,初始化一个新建的对象构建、创造对象的时候,所调用的方。多了一种调用方式,可以通过类名调用;类中创建对象,调用方法的时候,执行的是子类的方法逻辑,这就是子类的方法对父类方法进行了。

whale_123455的博客 332

day-13面向对象进阶

黑马java-day13复盘笔记

hanxuewei666的博客 988

Java学习笔记Day8

继承是面向对象三大特征之一,可以让类跟类之间产生子父的关系可以把多个子类中重复的代码抽取到父类中,子类可以直接使用,减少代码沉余,提高代码的复用性Java中提供一个关键词extends,用这个关键字,我们可以让一个类和另一个类建立起继承关系。Student 称为子类(派生类),Person称为父类(基类或者超类)使用继承的好处可以把多个子类中重复的代码抽取到父类中了,提高代码的复用性子类可以在父类的基础上增加其他的功能,使子类更加强大什么时候用继承?

2301_80131176的博客 950

Java基础面试题(5)

持续更新中。

qq_69240236的博客 726

Javase基础3

本篇文章主要介绍了面向对象的详细介绍以及如何使用

2201_76035331的博客 377
上一篇: 06_可变参数_递归_类和对象_封装
下一篇: 08_抽象_接口_final关键字_多态
ChoSeitaku
博客等级 码龄5年 3452粉丝 557原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值