以下学习笔记记录于:2024.07.24-2024.07.30
文章目录
阶段一 JavaSE基础
第二章 面向对象基础
01 面向对象入门
02 深刻认识面向对象
注:new就相当于新建一张表来对数据和方法进行存储。
03 对象在计算机中的执行原理
04 类与对象的注意事项
05 this关键字
06 构造器
若定义了有参构造器,则要顺便把无参构造器写出来
07 面向对象三大特征之一:封装*
08 实体JavaBean(实体类)
实体类仅进行数据存取,且除了图片中所框选的必要内容外无其他内容。
快速生成常用代码结构:鼠标右键点击”Generate 生成”,在弹窗中进行选择需要生成的内容,如果想要给多个成员变量设置则按住Shift或Ctrl,用鼠标选择好之后点击“确定”即可。
特别地,鼠标指向第一个成员变量,按住Shift后直接点击最后一个成员变量这样就可以直接将所有成员变量全选。
选择“Getter and Setter”可生成get、set方法;选择“Constructor”可生成无参数或有参数构造器。
Student.java:
// JavaBean实体类,专门用来进行数据存取
public class Student {
// 1.必须私有成员变量,并为每一个成员变量都提供get、set方法
private String name;
private double score;
// 2.必须为类提供一个公开的无参数构造器
public Student() {
}
public Student(String name, double score) {
this.name = name;
this.score = score;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public double getScore() {
return score;
}
public void setScore(double score) {
this.score = score;
}
}
StudentOperator.java:
// 专门存放数据业务处理
public class StudentOperator {
private Student student;
public StudentOperator(Student student) {
this.student = student;
}
public void printPass(){
if (student.getScore() >= 60){
System.out.println(student.getName() + "成绩及格");
}else {
System.out.println(student.getName() + "成绩不及格");
}
}
}
testJavaBean.java:
package com.itheima.JavaBean;
public class testJavaBean {
public static void main(String[] args) {
Student s = new Student();
s.setName("波妞");
s.setScore(100);
System.out.println(s.getName());
System.out.println(s.getScore());
StudentOperator operator = new StudentOperator(s);
operator.printPass();
}
}
运行结果:
09 面向对象编程的综合案例
Movie.java:
// 设计一个电影类
public class Movie {
private int id;
private String name;
private double price;
private double score;
private String director;
private String actor;
private String info;
public Movie() {
}
public Movie(int id, String name, double price, double score, String director, String actor, String info) {
this.id = id;
this.name = name;
this.price = price;
this.score = score;
this.director = director;
this.actor = actor;
this.info = info;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
public double getScore() {
return score;
}
public void setScore(double score) {
this.score = score;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getDirector() {
return director;
}
public void setDirector(String director) {
this.director = director;
}
public String getActor() {
return actor;
}
public void setActor(String actor) {
this.actor = actor;
}
public String getInfo() {
return info;
}
public void setInfo(String info) {
this.info = info;
}
}
MovieOperator.java:
package com.itheima.JavaBean.Movie;
// 设计一个电影的操作类
public class MovieOperator {
private Movie[] movies;
public MovieOperator() {
}
public MovieOperator(Movie[] movies) {
this.movies = movies;
}
// 1. 展示系统全部电影信息
public void printAllMovies(){
System.out.println("------系统全部电影信息如下------");
for (int i = 0; i < movies.length; i++) {
Movie movie = movies[i];
System.out.println("编号:" + movie.getId());
System.out.println("名称:" + movie.getName());
System.out.println("价格:" + movie.getPrice());
System.out.println("-----------------------------");
}
}
// 2. 根据电影编号查询该电影的信息并展示
public void searchMovieById(int id){
for (int i = 0; i < movies.length; i++) {
Movie movie = movies[i];
if (movie.getId() == id){
System.out.println("该电影详情如下:");
System.out.println("编号:" + movie.getId());
System.out.println("名称:" + movie.getName());
System.out.println("价格:" + movie.getPrice());
System.out.println("得分:" + movie.getScore());
System.out.println("导演:" + movie.getDirector());
System.out.println("演员:" + movie.getActor());
System.out.println("其他信息:" + movie.getInfo());
return; // 已经找到电影信息并输出之后就没必要继续执行该方法了
}
}
System.out.println("没有此编号对应的电影信息!!!");
}
}
MovieText.java:
import java.util.Scanner;
// 目标:完成电影信息展示功能;根据电影id查询该电影详情
/*
电影数据:
1, "水门桥", 38.9, 9.8, "徐克", "吴京", "12万人想看"
2, "出拳吧,妈妈", 39, 7.8, "唐晓白", "田雨", "3.5万人想看"
3, "月球陨落", 42, 7.9, "罗兰", "贝瑞", "17.9万人想看"
4, "一点就到家", 35, 8.7, "许宏宇", "刘昊然", "10.8万人想看"
*/
public class MovieText {
public static void main(String[] args) {
Movie[] movies = new Movie[4];
movies[0] = new Movie(1, "水门桥", 38.9, 9.8, "徐克", "吴京", "12万人想看");
movies[1] = new Movie(2, "出拳吧,妈妈", 39, 7.8, "唐晓白", "田雨", "3.5万人想看");
movies[2] = new Movie(3, "月球陨落", 42, 7.9, "罗兰", "贝瑞", "17.9万人想看");
movies[3] = new Movie(4, "一点就到家", 35, 8.7, "许宏宇", "刘昊然", "10.8万人想看");
// 创建一个电影操作类的对象,接收电影数据,并对其进行业务处理
MovieOperator operator = new MovieOperator(movies);
while (true) {
System.out.println("===电影信息系统===");
System.out.println("数字1:查询全部电影信息");
System.out.println("数字2:根据id查询某个电影的详细信息展示");
System.out.println("请您输入操作命令:");
Scanner sc = new Scanner(System.in);
int command = sc.nextInt();
switch (command){
case 1:
operator.printAllMovies();
break;
case 2:
System.out.println("请您输入想要查询的电影id:");
int id = sc.nextInt();
operator.searchMovieById(id);
break;
default:
System.out.println("您输入的命令有问题,请重新输入----");
}
}
}
}
运行结果:
10 成员变量、局部变量的区别
第三章 API基础
API(全称 Application Programming Interface: 应用程序编程接口):就是别人写好的程序,我们直接调用即可。
02 包的概述
03 String概述
04 String提供的常用方法
// 快速熟悉String提供的处理字符串的常用方法
public class StringDemo {
public static void main(String[] args) {
String s = "黑马Java";
// 1. public int length():获取字符串长度
System.out.println(s.length());
System.out.println("------------");
// 2.public char charAt(int index):提取字符串中某个索引位置处的字符
char c = s.charAt(1);
System.out.println(c);
// 字符串的遍历
for (int i = 0; i < s.length(); i++) {
char ch = s.charAt(i);
System.out.println(ch);
}
System.out.println("------------");
// 3. public char[] toCharArray():把字符串转换成字符数组,再进行遍历
char[] chars = s.toCharArray();
for (int i = 0; i < chars.length; i++) {
System.out.println(chars[i]);
}
System.out.println("------------");
// 4. public boolean equals(Object anObject):判断字符串内容,内容一样就返回true
String s1 = new String("黑马");
String s2 = new String("黑马");
System.out.println(s1 == s2); // false:此处是拿两者存储的地址来比较
System.out.println(s1.equals(s2)); // true:此处是拿两者所指向的内容来比较
System.out.println("------------");
// 5. public boolean equalsIgnoreCase(String anotherString):忽略大小写来比较字符串的内容
String c1 = "34AeFG";
String c2 = "34aEfg";
System.out.println(c1.equals(c2)); // false
System.out.println(c1.equalsIgnoreCase(c2)); // true
System.out.println("------------");
// 6. public String substring(int beginIndex, int endIndex):截取字符串内容(包前不包后!!!)
String s3 = "Java是最好的编程语言之一";
String rs1 = s3.substring(0, 8);
System.out.println(rs1);
System.out.println("------------");
// 7. public String substring(int beginIndex):从当前索引位置一直截取到字符串的末尾
String rs2 = s3.substring(5);
System.out.println(rs2);
System.out.println("------------");
// 8. public String replace(CharSequence target, CharSequence replacement):把字符串中的某个内容替换成新内容,并返回新的字符串对象给我们
String info1 = "这个电影简直垃圾,垃圾电影!!!!";
String rs3 = info1.replace("垃圾", "**");
System.out.println(rs3);
System.out.println("------------");
// 9. public boolean contains(CharSequence s):判断字符串中是否包含某个关键字
String info2 = "Java是最好的编程语言之一,我爱Java,Java不爱我!";
System.out.println(info2.contains("Java"));
System.out.println(info2.contains("java"));
System.out.println(info2.contains("Java2"));
System.out.println("------------");
// 10. public boolean startsWith(String prefix):判断字符串是否以某个字符串开头
String rs4 = "张三风";
System.out.println(rs4.startsWith("张"));
System.out.println(rs4.startsWith("张三"));
System.out.println(rs4.startsWith("张三三"));
System.out.println("------------");
// 11. public String[] split(String regex):把字符串按照某个指定内容分割成多个字符串,存储到一个字符串数组中并返回给我们
String rs5 = "迪丽热巴,杨幂";
String[] names = rs5.split(",");
for (int i = 0; i < names.length; i++) {
System.out.println(names[i]);
}
}
}
运行结果:
05 String的注意事项
// 搞清楚String使用的注意事项
public class StringDemo2 {
public static void main(String[] args) {
// 1. String的对象是不可变的
String name = "黑马";
name += "程序员";
name += "波妞";
System.out.println(name);
// 2. 只要是以双引号给出的字符串对象,会存储在字符串常量池中,且相同内容的字符串只存储一份
String s1 = "abc";
String s2 = "abc";
System.out.println(s1 == s2); // true
// 3. 通过new String方式创建字符串对象,每new一次都会产生一个新的对象放在堆内存中
char[] chars = {'a', 'b', 'c'};
String a1 = new String(chars);
String a2 = new String(chars);
System.out.println(a1 == a2); // false
}
}
运行结果:
笔试题: