首页 > 其他分享 >第四周学习报告

第四周学习报告

时间:2024-07-27 21:42:19浏览次数:7  
标签:name 构造方法 报告 int age 学习 四周 public String

又经过了一周的学习,今天对本周学习进行总结
本周学习了面向对象和字符串的相关知识

面向对象

类和对象

类的定义
通过关键字class来定义

class MyClass {  
    // 属性  
    int number;  
    String name;  
    // 方法  
    void display() {  
        System.out.println("Number = " + number + ", Name = " + name);  
    }  
}

对象的创建
使用new关键字和类的构造函数(如果没有显式定义,则使用默认的无参构造函数)来创建对象。

// 创建MyClass的一个对象  
MyClass myObject = new MyClass();  
// 设置对象的属性  
myObject.number = 10;  
myObject.name = "John";  
// 调用对象的方法  
myObject.display(); // 输出: Number = 10, Name = John

封装

1.修改属性的访问权限:将类的属性设为私有(private)或受保护的(protected),这样它们就不能被类外部的代码直接访问。
2.提供公共的getter和setter方法:为私有属性提供公共的getter(访问器)和setter(修改器)方法,以允许外部代码通过这些方法来访问和修改私有属性的值。
3.在getter和setter方法中加入逻辑:可以在getter和setter方法中加入额外的逻辑,比如验证输入值的有效性、在修改属性值时触发其他操作等。

public class Person {  
    // 私有属性  
    private String name;  
    private int age;  
    // 公共的getter和setter方法  
    public String getName() {  
        return name;  
    }  
    public void setName(String name) {  
        // 可以在这里加入验证逻辑  
        if (name != null && !name.isEmpty()) {  
            this.name = name;  
        } else {  
            throw new IllegalArgumentException("Name cannot be null or empty");  
        }  
    }  
    public int getAge() {  
        return age;  
    }  
    public void setAge(int age) {  
        // 可以在这里加入验证逻辑  
        if (age >= 0) {  
            this.age = age;  
        } else {  
            throw new IllegalArgumentException("Age cannot be negative");  
        }  
    }  
  
    // 其他方法...  
}

构造方法

1.默认构造方法:如果一个类中没有显式定义任何构造方法,Java编译器会自动为这个类提供一个无参数的默认构造方法。这个默认构造方法不包含任何参数,并且执行的操作通常是对象的默认初始化。
2.自定义构造方法:开发者可以在类中定义自己的构造方法,以便在对象创建时执行特定的初始化操作。自定义构造方法可以有参数,允许根据传入的参数来初始化对象的属性。

public class Person {  
    private String name;  
    private int age;  
    // 默认构造方法  
    public Person() {  
        this.name = "Unknown";  
        this.age = 0;  
    }  
    // 自定义构造方法  
    public Person(String name, int age) {  
        this.name = name;  
        this.age = age;  
    }  
    // Getter和Setter方法  
    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 static void main(String[] args) {  
        Person person1 = new Person(); // 使用默认构造方法  
        System.out.println("Name: " + person1.getName() + ", Age: " + person1.getAge()); 
        Person person2 = new Person("John", 30); // 使用自定义构造方法  
        System.out.println("Name: " + person2.getName() + ", Age: " + person2.getAge()); 
    }  
}

标准的javabean类

JavaBean是一种特殊的Java类,它符合特定的设计模式,主要用于封装数据。
1.包内定义:JavaBean类必须在包内定义,且这个包不能是缺省包。
2.公开类:JavaBean类必须是public类,这样它才能被其他类访问。
3.无参构造方法:JavaBean类必须提供一个无参数的构造方法,这样其他程序就可以通过反射机制来实例化JavaBean对象。

package com.example;  
public class User {  
    private String userName;  
    private int age;  
    // 无参构造方法  
    public User() {  
    }  
    // 带参构造方法  
    public User(String userName, int age) {  
        this.userName = userName;  
        this.age = age;  
    }  
    // getter方法  
    public String getUserName() {  
        return userName;  
    }  
    // setter方法  
    public void setUserName(String userName) {  
        this.userName = userName;  
    }  
    // 其他getter和setter方法...  
    public int getAge() {  
        return age;  
    }  
    public void setAge(int age) {  
        this.age = age;  
    }  
}

成员和局部

成员变量 局部变量
定义与位置 在类体中声明的变量,位于方法之外 在方法、构造器或语句块中声明的变量
作用域 整个类 仅限于声明它们的方法、构造器或语句块
存储位置 堆内存 栈内存
初始值 有默认初始值 没有默认初始值,必须显式赋值
生存周期 与对象的生存周期相同 仅限于所在方法、构造器或语句块的执行时间

字符串

1.不可变字符串
・length():返回字符串的长度。
・charAt(int index):返回指定索引处的字符。
・substring(int beginIndex, int endIndex):返回从beginIndex开始到endIndex(不包含)的子字符串。
・equals(Object anObject):比较两个字符串的内容是否相同。
・compareTo(String anotherString):按字典顺序比较两个字符串。
・replace(CharSequence target, CharSequence replacement):用replacement替换字符串中所有target出现的地方。
・split(String regex):根据给定的正则表达式分割字符串。
・toLowerCase() 和 toUpperCase():将字符串转换为小写或大写。
2.可变字符串(StringBuilder/StringBuffer)
・StringBuilder和StringBuffer都允许在创建后修改字符串内容,而不需要创建新的对象。
・append(String str):将指定的字符串追加到此字符序列的末尾。
・insert(int offset, String str):在指定索引处插入字符串。
・delete(int start, int end):删除此序列的子字符串中的字符。
・reverse():将此字符序列用其反转形式替换。

以上是本周学习总结。

标签:name,构造方法,报告,int,age,学习,四周,public,String
From: https://www.cnblogs.com/wangzilin0507/p/18327526

相关文章

  • 【学习笔记】最短路
    【学习笔记】最短路前言:只是对一些最短路算法的实现整理。以下内容有部分摘自OI_wiki。Floyd算法求全源最短路。可以有负边权。Floyd算法的本质是动态规划。设\(dis(k,i,j)\)表示由若干个编号不超过\(k\)的节点中转后从\(i\)到\(j\)的最短路。该“动规”有两......
  • 软件工程进度报告——第四周
    本周进一步学习了Java的基本格式1.类的基本格式修饰符class类名{类体;}2.main()方法publicstaticvoidmain(String[]args){方法体;}3.方法:用于改变对象属性,接收或发送信息,在类中用于描述类的行为修饰符返回类型方法名(参数类型1参数名1.....){方法体;return......
  • (leetcode学习)236. 二叉树的最近公共祖先
    给定一个二叉树,找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树T的两个节点p、q,最近公共祖先表示为一个节点x,满足x是p、q的祖先且x的深度尽可能大(一个节点也可以是它自己的祖先)。”示例1:输入:root=[3,5,1,6,2,0,8,nul......
  • 【python学习】retry库用法大全!附示例代码
    Retry是一个用于Python的库,用于在函数调用失败时自动重试。它的目标是简化重试逻辑的编写,处理由于临时性问题(如网络故障、API限制等)导致的失败。Retry的主要特点包括:简单易用:只需使用装饰器或上下文管理器即可实现重试功能。灵活配置:可以配置重试次数、重试间隔、异常......
  • MYSQL-DDL 基础学习
    DDL:数据定义型语言可理解为有关列的操作1、数据库基本操作_DDL#创建数据库db1createdatabasedb1;#使用数据库db1usedb1;#删除数据库db1dropdatabasedb1;#查看所有的数据库showdatabases;#查看当前所使用的数据库selectdatabase();#查看数据库的建库语句sh......
  • ssy中学暑假集训向量学习笔记(应该能完结)
    今天模拟赛T4是个极其恶心的东西,用到了许多高中数学知识,md,引入前置知识。向量定义顾名思义,向量就是有方向的量,在平面直角坐标系上可以用\((a,b)\)表示,图如下:图像上即为由\(A\)指向\(B\)的一条向量。投影投影不好解释,拿图吧。\(AC\)在\(AB\)上的投影就是\(AD\)!!刚学的时候......
  • 第四周学习总结
    异常处理异常处理是Java中非常重要的一部分,本周我系统学习了try-catch-finally语句的用法,以及自定义异常和异常链的概念。通过实践,我了解到如何合理地在代码中处理潜在的错误情况,确保程序的健壮性和稳定性。此外,我还学习了如何抛出和捕获特定类型的异常,以及如何使用异常来传递程......
  • Android中Service学习记录
    目录一概述二生命周期2.1启动服务startService()2.2绑定服务bindService()2.3先启动后绑定2.4先绑定后启动三使用3.1本地服务(启动式)3.2可通信的服务(绑定式)3.3前台服务3.4IntentService总结参考一概述Service组件一般用来执行长期在后台的任务,如播放音......
  • MATLAB学习日志DAY20
     结构体(1)结构体是多维MATLAB数组,包含可按文本字段标志符访问的元素。例如,S.name='EdPlum';S.score=83;S.grade='B+'创建一个具有三个字段的标量结构体:S=name:'EdPlum'score:83grade:'B+'与MATLAB环境中的所有其他内容一样,结构体......
  • java学习第四周
    这是学习java的第四周,主要学习了《Java程序设计完全学习手册》第十二章的内容,学习了文件的相关操作,能够实现对文件进行读写等,学习了Java流原理,掌握输入流与输出流、字节流和字符流等,简单认识了对象的序列化等,更熟练地进行数据处理。面向对象程序设计语言有三大特性:封装、继承和多......