JavaSE基础知识分享(三)
1.JavaSE基础知识分享(一)2.JavaSE基础编程十题(数据类型、运算符、选择语句、循环语句部分)3.JavaSE基础知识分享(二)4.JavaSE基础知识分享(二)相关练习题5.JavaSE基础编程十题(数组和方法部分)
6.JavaSE基础知识分享(三)
7.JavaSE基础知识分享(三)相关练习题8.JavaSE基础知识分享(四)9.JavaSE基础知识分享(五)10.JavaSE基础知识分享(六)11.JavaSE基础知识分享(七)12.JavaSE基础知识分享(八)13.JavaSE基础知识分享(九)14.JavaSE基础知识分享(十)15.JavaSE基础知识分享(十一)16.JavaSE基础知识分享(十二)17.JavaSE基础知识分享(十三)18.JavaSE基础知识分享(十四)19.JavaSE基础知识分享(十五)写在前面
前面给了关于java方法和数组的十题编程题,如果你能有思路很快速地完成它,说明你这部分的基础知识很好,接下来就来看看后面的面向对象的相关知识吧!
面向对象
概述:不断地创建对象,使用对象,指挥对象做事情的思想。
类和对象的关系:
类:
是java的基本单位,主要使用用于描述现实生活的事物。由成员变量(属性)和成员方法(行为)以及构造方法组成。
对象:
可以看成是一个类的具体的实例,通过一个类造出多个不同的对象。语句定义格式: 类名 对象名 = new 类名();
对象访问成员的方式:
成员变量:对象名.成员变量
成员方法:对象名.成员方法(xxx)
接下来开始讲面向对象的三大特征:
封装
概述:隐藏类中实现细节,对外提供公共的方法。
private关键字
// 私有的,是一种权限修饰符。 // 可以修饰成员变量,构造方法,成员方法。 // 被private关键字修饰的成员只能在本类中进行访问。 private int privateVariable; private void privateMethod() { // 只能在本类中访问的方法体 }
this关键字
// 在方法中使用,代表调用当前该方法的对象。 // 访问成员变量: this.成员变量 // 访问成员方法: this.成员方法(...) // 构造方法调用: this(...) public class Example { private int number; public Example(int number) { this.number = number; // 使用this访问成员变量 } public void setNumber(int number) { this.number = number; // 使用this访问成员变量 } }
构造方法
// 在创建对象时调用,用于在堆内存中为对象开辟空间。 // 方法名与类名相同,没有返回值类型。 // 构造方法可以发生重载,可以传入参数,在创建对象的同时给对象的成员变量赋值。 // 如果不提供构造方法,JVM会提供一个默认的无参构造方法;若提供了构造方法,则系统不再提供默认构造方法。 public class Student { private String name; private int age; // 无参构造方法 public Student() { // 默认构造方法体 } // 带参数的构造方法 public Student(String name, int age) { this.name = name; this.age = age; } }
static关键字
// 静态的,可以修饰成员和成员方法,静态代码块,静态内部类。 // 可以直接通过类名访问静态成员变量和静态成员方法。 // 随着类的加载而加载,优先于对象而存在。 // 静态成员方法只能访问静态成员,非静态成员方法可以访问静态和非静态成员。 // 推荐使用类名访问静态成员。 public class Example { private static int staticVariable = 10; private int instanceVariable = 20; public static void staticMethod() { System.out.println("Static method called."); } public void instanceMethod() { System.out.println("Instance method called."); System.out.println("Static variable accessed: " + staticVariable); System.out.println("Instance variable accessed: " + instanceVariable); } }
帮助文档
// 如何使用帮助文件: // 1. 双击打开。 // 2. 点击搜索,输入要查询的类。 // 3. 观察所属包,若属于java.lang包下可直接使用,否则需导包。 // 4. 查看类的继承和实现关系。 // 5. 查看类的描述。 // 6. 查看构造方法,若无构造方法可能是工具类。 // 7. 查看成员变量。 // 8. 查看成员方法。
代码块
// 局部代码块: 在方法内部,使用大括号括起来的代码块。 public class Example { public void someMethod() { { // 局部代码块 int x = 10; System.out.println("Inside local block: " + x); } } } // 构造代码块: 类中方法外的代码块,每创建一次对象都会执行一次。 public class Example { { // 构造代码块 System.out.println("Instance initialization block called."); } public Example() { // 构造方法 System.out.println("Constructor called."); } } // 静态代码块: 使用static修饰,类加载时执行,仅执行一次。 public class Example { static { // 静态代码块 System.out.println("Static block called."); } public static void main(String[] args) { System.out.println("Main method called."); } }
引用和基本数据类型当做参数
// 当基本数据类型作为方法参数类型时,调用时传入具体数值。 public class Example { public void methodWithPrimitive(int number) { // 方法体 } } // 当引用数据类型作为方法参数类型时,调用时传入该引用数据类型的对象。 public class Example { public void methodWithReference(Student student) { // 方法体 } }
静态变量和成员变量的区别
-
所属不同:
- 静态变量: 属于类,也称为类变量。
- 成员变量: 属于对象,也称为实例变量或对象变量。
-
内存中位置不同:
- 静态变量: 存储于方法区的静态区。
- 成员变量: 存储于堆内存中的对象内部。
-
内存出现时间不同:
- 静态变量: 随着类的加载而加载,随着类的卸载而卸载。
- 成员变量: 随着对象的创建而存在,随着对象的销毁而销毁。
-
调用方式不同:
- 静态变量: 可以通过类名直接调用,也可以通过对象名调用。
- 成员变量: 只能通过对象名调用。
好了,今天的分享结束了,文末会有两题练习题给到大家,如果感兴趣的可以写一下试试看,明后天我会出封装这部分的相关题目给大家练练手,一起进步吧!
练习题目:
1.定义一个类Demo,其中定义一个求两个数据和的方法,定义一个测试类Test,进行测试。
2.定义一个长方形类,定义求周长和面积的方法,然后定义一个测试类Test2,进行测试。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)