学习java第10天(面向对象进阶篇)

本文详细介绍了Java中的static关键字,包括其作用、静态成员变量与实例成员变量的区分及访问方式。接着讨论了设计模式中的单例模式及其应用场景。此外,还详细阐述了面向对象的三大特征——继承,分析了继承的优缺点、特点以及构造器在继承中的作用。最后,探讨了方法重写和子类构造器的特点。
摘要由CSDN通过智能技术生成

static关键字:开发中如何定义一个共享的信息,给所有对象共享访问,如在线人数信息等

设计模式:单例 有些类只需要一个对象就可以了,如任务管理器对象,如何实现一个类只能对外产生同一个对象

面向对象三大特征:继承 大量角色类的属性和行为存在重复代码,如果把一类的角色信息进行优化,提升代码复用,降低代码冗余

静态关键字:

static的作用,修饰成员变量的用法 static是静态的意思,可以修饰成员变量,表示该成员变量只在内存中只存储一份,可以被共享访问、修改

成员变量可以分为两类

静态成员变量(有static修饰,属于类,内存中加载一次):常表示在线人数信息,需要被共享的信息,可以被共享访问

类名.静态成员变量(推荐)  对象.静态成员变量(不推荐)

实例成员变量(无static修饰,存在与每个对象中):常表示姓名name、年龄age、等属于每个对象的信息

对象.实例成员变量

package com.itheima.d1_foeld;

public class User {
    //在线人数信息,静态成员变量
    public static int onLineNumber=162;
    //实例成员变量
    private String name;
    private int age;

    public static void main(String[] args) {
        //1。类名.静态成员变量
        System.out.println(onLineNumber);
        //注意:同一个类中访问静态成员变量,类名可以省略不写
        User.onLineNumber++;
        //2.对象.实例成员变量
        User u1=new User();
        u1.name="猪八戒";
        u1.age=36;
        System.out.println(u1.name);
        System.out.println(u1.age);
        //对象.静态成员变量(不推荐)
        System.out.println(u1.onLineNumber);
        User u2 = new User();
        u2.name="孙悟空";
        u2.age=38;
        System.out.println(u2.name);
        System.out.println(u2.age);
        //对象.静态成员变量(不推荐这样访问)
        u2.onLineNumber++;
        System.out.println(onLineNumber);
    }
}

成员变量的分类和访问分别是什么样的?

静态成员变量(有static修饰,属于类、加载一次,可以被共享访问)访问格式

类名.静态成员变量(推荐)

对象.静态成员变量(不推荐)

实例成员变量(无static修饰,属于对象)访问格式:

对象.实例成员变量

两种成员变量各自在什么情况下定义?

静态成员变量:表示在线人数等需要被共享的信息

实例成员变量:属于每个对象,且每个对象信息不同时(name,age...等)

 static修饰方法的基本用法

之前我们定义的方法有的有static修饰,有的是没有的,有什么不同?

public void run(){

        System.out.println(name+"正在好好学习,天天向上-");

}

public static int getMax(int a,int b){

        return a>b?a:b;

}

 成员方法的分类:

静态成员方法(有static修饰、属于类),建议用类名访问,也可以用对象访问

实例成员方法(无static修饰,属于对象),只能用对象触发访问

表示对象自己的行为,且方法中需要访问实例成员的,则该方法必须申明成实例方法

如果该方法是以执行一个通用功能为目的,或者需要方便访问,则可以申明成静态方法

成员方法的分类和访问分别是什么样的?

静态成员方法(有static修饰,属于类和对象共享)访问格式

类名.静态成员方法

对象.静态成员方法(不推荐)

实例成员方法(无static修饰,属于对象)的访问格式:对象.实例成员方法

每种成员方法的使用场景是怎么样的?

表示对象自己的行为的,且方法中需要访问实例成员的,则方法中组要访问实例成员的,则该方法必须申明成实例方法

如果该方法是以执行一个通用功能位目的,或者需要方便访问,则可以申明成静态方法

 static实际应用案例:使用静态方法定义工具类

package com.itheima.d12_static_test;

import java.util.Random;

public class VerifyTool {
    //验证码
    public static String createCode(int n) {
        //1.使用String开发一个验证码
        String chars = "vbueohyouyonrfiufupoerohgARFEARGRTQEAF$fr$";
        //2.定义一个变量用来存储作为验证码
        String code = "";
        //3.循环
        Random ra = new Random();
        for (int i = 0; i < 5; i++) {
            int index = ra.nextInt(chars.length());
            /
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值