开发喵星球

第五周周报-姬丽丽

周报

日期:2023/08/07 ~ 2023/08/12

一、本周回顾

本周学习了面向对象,主要有抽象数据类型、对象的构造和初始化、包的使用、访问修饰符、封装、继承和多态。

面向对象:

对象:在面向对象的世界中万事万物皆对象。能看得见摸得着的任何物体都是对象,例如猫、狗、鸭子等。

类:具有相同的状态和相同的行为的一组对象的集合。例如有学号、有姓名的状态,有听课、有做作业的行为的所有对象可以归纳为一类。

类和对象的关系:类是多个对象进行综合抽象的结果,是实体对象的概念模型,而一个对象是一个类的实例。

定义类:

类的字段:

类的内部包括字段和方法,对象所拥有的特征在类中表示时称为类的字段,字段使用变量表示。

类的方法:

对象执行操作的行为称为类的方法。

创建对象:

类是一类事物的集合和抽象,代表着这类事务共有的字段和行为。一个对象称为类的一个实例,是类一次实例化的结果。

使用对象:

成员变量:在类中(方法外)声明的变量,在创建对象时会进行初始化

实例变量:每个对象的实例变量不共享

引用对象的字段和方法,需要使用成员运算符“.”

成员变量的作用域:

直接定义在类的内部、方法的外部的变量称为成员变量。

成员变量的作用域是整个类。

显式成员初始化:

package method;

public class Person { //定义person类
    private int x=5;
    private String name="喵星人";
    private double weight=45.8;

}

<p>局部变量的作用域:</p>
<p>局部变量就是定义在方法内部的变量。局部变量只能在方法内部使用。</p>
<p>局部变量在使用之前必须初始化,否则编译出错。</p>
<p>构造方法的定义:</p>
<p>构造方法的作用是为成员变量的初始化。</p>
<blockquote>
<p>[访问修饰符] 方法名([参数列表]){</p>
<p>//省略方法体的代码</p>
<p>}</p>
</blockquote>
<p>默认的构造方法:</p>
<p>每个类都必须至少有一个构造方法。</p>
<p>默认构造方法的参数列表及方法体均为空。</p>
<p>构造方法不能继承。</p>
<p>方法重载:</p>
<p>方法重载是指在一个类中,定义多个同名的方法,但要求每个方法具有不同的参数类型或参数个数或参数顺序。</p>
<p>“`java
package method;

public class Person { //定义person类
public String name;
public String gender;
public int age;
//第一次重载
public void work(){
System.out.println(this.name+”的工作理念:工作让生活更美好”);
}
//第二次重载
public void work(String content){
System.out.println(this.name+”的工作理念:”+content);
}
}



包的概述: 包是类的容器,利用包来划分名字空间,用于分隔类名空间,以避免类名冲突。 作用: (1)存放类。 (2)防止命名冲突。Java中只有在不同的包中的类才可以同名。 (3)包允许在更广的范围内保护类、方法和数据,包外的代码有可能不能访问该类。 包的定义:
  • 包的声明必须是Java源文件中的第一条非注释行语句,而且一个源文件只能只能有一个包声明语句。
  • 一个唯一的包名前缀通常是全部小写的ASCⅡ码,并且是一个顶级域名com、edu、gov、net、org,通常使用域名的倒序。例如kaifamiao.com,声明包时为com.kaifamiao。
  • 定义包后,Java会在硬盘生成与之一一对应的目录。
包的使用:
  • 包不能以java、javax开头
  • 导入包是声明当前类要使用到的其他类的包
  • 使用非同包下的类必须先导包或者使用全限定类名
  • 同包下的类不需要导包
  • java.lang包下的类不需要导包
类和类的访问控制: 包实际上是一种访问控制机制,通过包来限制和制约类之间的访问关系。 Java中的封装是通过访问修饰符实现的。访问修饰符有三个(4种),分别是public、protected、package-access、private。 static关键字: 使用static修饰的属性称为静态属性或者类变量,没有使用static修饰的属性称为实例变量。使用static修饰的属性属于类。类属性在类首次被加载时初始化。 ```mysql package method; public class Person { //定义person类 public static int person_live;//类变量 <pre><code>public static void main(String[] args) { Person.person_live=1; System.out.println(Person.person_live); } </code></pre> } </code></pre> <p>封装概述: 封装的实质就是将类的<a href="https://so.csdn.net/so/search?q=成员变量&spm=1001.2101.3001.7020">成员变量</a>、方法等隐藏在类的内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的操作和访问。可以使用访问修饰符来控制类中的数据和方法的访问级别,从而实现包装。 封装的步骤: 1.修改字段的可见性 2.设置getter/setter方法 3.设置字段的存取权限 封装的意义: 主要目的是隐藏类的内部实现细节,防止外部直接访问类的内部数据和方法,从而保证类的安全性和稳定性。 遮蔽: 在一个作用域中使用了一个和外部作用域相同的变量名,导致内部变量“遮蔽”了外部变量,既无法直接访问外部变量。 this: this关键字代表当前对象,通常用于区分方法中的局部变量和成员变量。 ```java package method;

public class Person { //定义person类 private String name; private int age;
public void setName(String name) {
    this.name = name;
}

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

}



继承: 继承中可以解决编程中代码冗余的问题,新类可以在不增加自身代码的情况下,通过从现有类中将继承其属性和方法,来实现充实自身内容,这种现象或行为就称为继承。新类称为子类,现有类称为父类。 继承的应用: ```java package method; //定义一个父类 public class Person { //定义person类 protected int age; protected String name; public Person(int age,String name){ this.age=age; this.name=name; } public Person(){} public void printInfo(){ System.out.println("name:"+name); System.out.println("age:"+age); } }

使用super关键字调用父类成员:

当需要在子类中调用父类的构造方法时,可以使用super关键字调用。super用在子类中,访问直接父类中被隐藏的内容。super关键字不仅可以访问父类的构造方法,还可以访问父类的成员、父类的普通方法等。

方法重写:

如果从父类中继承的方法不能满足子类的需求,可以在子类中对父类同名方法进行重写(覆盖),以符合子类的需求。

方法隐藏:

父类和子类拥有相同名字的属性或方法时,父类的同名的属性或方法形式上不见了,实际还是存在的。(方法隐藏只有一种形式,就是父类和子类存在签名相同的静态方法)。

Object类:

Object类是所有类的父类。所有的Java类都直接或间接的继承了java.lang.Object类。在定义一个类时,没有使用extends关键字,也就是没有显式的继承某个类,那么这个类直接继承Object类。

String toString() 返回当前对象本身的有关信息,返回字符串对象
boolean equals(Object) 比较两个对象是否是同一个对象,若是,返回true
Object clone() 生成当前对象的一个副本,并返回
Class getClass() 获取类结构信息,返回class对象
int hashCode() 返回对象的哈希码值

二、感受

image-20230820230748428

就是很累,上课听的很艰难,开学到现在还没有过这种感觉,上课老是听不懂,气的想打人。。。不过每天也在努力听懂,放两天假本来打算好好补一下,结果刚到教室肚子疼,躺了一天半。。。呜呜呜越落越多。

三、问题

最大的问题:宿舍空调坏了!教室热宿舍还热!学习上的,太多了。。。。。。无法用语言表达。

   
分类:学员日志 作者:开发喵 发表于:2023-08-21 16:50:36 阅读量:105
<<   >>


powered by kaifamiao