又经过了一周的学习,今天对本周学习进行总结
本周学习了面向对象和字符串的相关知识
面向对象
类和对象
类的定义
通过关键字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