JAVA学习笔记(进阶篇)

本文介绍了Java中类和对象的概念,包括成员变量、局部变量、对象的创建与使用,以及private关键字的作用。详细讲解了this关键字的用法,封装的概念与好处,以及构造方法的功能。此外,还探讨了String类的特性、比较方法、遍历技巧以及StringBuilder的使用,包括添加、反转和转换。最后,简要提到了集合基础,如ArrayList的构造与操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

类和对象

定义: 是对现实生活中一类具有共同属性行为的事物的抽象,确定对象将会拥有的属性和行为。
组成: 属性和行为

  • 属性: 在类中通过成员变量来体现(类中方法外的变量)
  • 行为: 在类中通过成员方法来体现(和前面的方法相比去掉static关键字即可)

定义步骤:
1.定义类
2.编写类的成员变量
3.编写类的成员方法

	//手机
	public class Phone{
		//成员变量
		String brand;//品牌
		int price;//价格
		//成员方法
		public void call(){
			System.out.println("打电话");
		}
		public void sendMessage(){
			System.out.println("发短信");
		}
	}

对象的使用

1.创建对象

	//类名 对象名 = new 类名(); 
	Phone P = new Phone();

2.使用对象
使用成员变量

	//对象名.变量名
	P.brand;

使用成员方法

	//对象名.方法名
	P.call();

成员变量和局部变量

成员变量:类中方法外的变量。
局部变量:方法中的变量。

	public class Student(){
		String name;//成员变量
		public void study(){
			int i = 0;//局部变量
			System.out.println("好好学习");
		}
		public void doHomework(){
			System.out.println("多做练习");
			int j = 0;
		}
		int age;
	}
区别成员变量局部变量
类中位置不同类中方法外方法内或者方法声明上
内存中位置不同堆内存栈内存
生命周期不同随着对象的存在而存在,随着对象的消失而消失随着方法的调用而存在,随着方法的调用完毕而消失
初始化值不同有默认初始值没有默认初始值,必须先定义赋值,才能使用

private关键字

功能

  • 权限修饰符
  • 可以修饰成员(成员变量和成员方法)
  • 作用是保护成员不被别的类使用,被private修饰的成员只能在本类中才能访问

操作
若要被其他类使用,有以下操作。

  • 提供get变量名()方法,用于获取成员变量的值,方法用public修饰
  • 提供set变量名(参数)方法,用于设置成员变量的值,方法用public修饰

this关键字

this修饰的变量用于指代成员变量

  • 方法的形参如果与成员变量同名,不带this修饰的变量指的是形参,而不是成员变量
  • 方法的形参没有与成员变量同名,不带this修饰的变量指的是成员变量

局部变量成员变量同名时,解决局部变量隐藏成员变量而使用this

封装

1.封装概述
面向对象三大特征:封装,继承,多态。
2.封装原则
将类的某些信息隐藏在类内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的操作和访问成员变量private,提供对应的getXxx()setXxx()方法。
3.封装好处
通过方法来控制成员变量的操作,提高了代码的安全性把代码用方法进行封装,提高了代码的复用性。

构造方法

主要完成对象数据的初始化

标准类的制作

API:应用程序编程接口。

JAVA API: 指的就是JDK中提供的各种功能的Java类这些类将底层的实现封装了起来,我们不需要关心这些类是如何实现的,只需要学习这些类如何使用即呵,我们可以通过帮助文档来学习这些AP|如何使用

String

JAVA程序中所有的双引号字符串,都是String类的对象。
从键盘输入字符串方法:

	Scanner sc = new Scanner(System.in);
	String line = sc.nextLine();

String 构造方法

方法名说明
public String()创建一个空白字符串对象,不含有任何内容
public String(char[] chs)根据字符数组的内容,来创建字符串对象
public String(byte[] bys)根据字节数组的内容,来创建字符串对象
String s = "abc"直接赋值的方式创建字符串对象,内容就是abc

直接赋值较好。

String对象的特点

1.通过new创建的字符串对象,每一次new都会申请一个内存空间, 虽然内容相同,但是地址值不同

	char[] chs = {'a','b','c'};
	String s1 = new String(chs);
	String s2 = new String(chs);

上面的代码中,JVM会首先创建一个字符数组, 然后每一次new的时候都会有一 个新的地址, 只不过s1和s2参考的字符串内容是相同的

2.以"" 方式给出的字符串, 只要字符序列相同(顺序和大小写),无论在程序代码中出现几次,JVM都只会建立-一个String对象,并在字符串池中维护

	String s3 = "abc";
	String s4 = "abc";

在上面的代码中,针对第一行代码, JVM会建立一个String对象放在字符串池中,并给s3参考;第二行则让s4直接参考字符串池中的String对象,也就是说它们本质上是同一个对象
在这里插入图片描述

字符串比较

1.使用==作比较

  • 基本类型:比较的是数据值是否相同。
  • 引用类型:比较的是地址值是否相同。

2.字符串比较方法
public boolean equals(Object anObject):将此字符串与指定对象进行比较。由于我们比较的是字符串对象,所以参数直接传递一个字符串。

	s1.equals(s2);//如此比较

遍历字符串

public char charAt(int index):返回索引处的char值,字符串的索引也是从0开始的
public int length():返回此字符串的长度

	line.charAt(0);
	line.length();

遍历方法

	for(int i = 0;i<line.length;i++){
		char ch = line.charAt(i);
	}

StringBuilder

在这里插入图片描述
如果对字符串进行拼接操作,每次拼接,都会构建一个新的 String对象,既耗时,又浪费内存空间,而这种操作还不可避免。那么有没有-种比较好的方式可以解决这个问题呢?我们可以通过Java提供StringBuilder类就来解决这个问题。

StringBuilder构造方法

方法名说明
public StringBuilder()创建一个空白可变字符串对象,不含有任何内容
public StringBuilder(String str)根据字符串的内容,来创建可变字符串对象

StringBuilder的添加和反转

方法名说明
public StringBuilder append(任意类型)添加数据,并返回对象本身
public StringBuilder reverse()返回相反的字符序列

链式编程

	sb.append("hello").append("world").append("java").append("100");
	System.out.println(sb);
	//helloworldjava100

StringBuilder和String相互转换

1.StringBuilder转换为String
调用toString()的方法。

	StringBuilder sb = new StringBuilder();
	sb.append("hello");
	String s = sb.toString();

2.String转换为StringBuilder
通过StringBuilder()构造方法即可。

	String s = "hello";
	StringBuilder sb = new StringBuilder(s);

集合基础

个人理解该集合类似C语言的链表。
ArrayList

	import java.util.ArrayList;//导包
	ArrayList<E>;//E 指的是该集合中元素的类型

构造方法和添加方法

方法名说明
public ArrayList()创建一个空的集合对象
public boolean add(E e)将指定的元素追加到此集合的末尾
public void add(int index,E element)在此集合中的指定位置插入指定的元素
	//创建一个空集合对象
	ArrayList<String> array = new ArrayList<String>();
	array.add("hello");
	array.add("world");	
	//[hello,world]
	array.add(1,javase);
	//[hello,javaee,world]

常用方法

方法名说明
public boolean remove(Object o)删除指定元素,返回删除是否成功
public E remove(int index)删除指定索引处元素,返回被删除元素
public E set(int index,E element)修改指定索引处元素,返回被修改元素
public E get(int index)返回指定索引处元素
public int size()返回集合中元素的个数

学生管理系统(JAVA版)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值