目录
1.学什么
- 学习自己如何设计对象
- 学习已有的对象如何使用
2.类
2.1类的组成
- 类:一组相关属性和行为的集合,将其看作是对象的设计图
- 对象:是根据设计图(类),创建出来的实体
- n.属性(成员变量):跟之前定义变量的格式一样,只不过位置需要放在方法的外面
- v.行为(成员方法):跟之前定义方法的格式一样,只不过需要去掉static关键字
2.2类与对象的关系
- 依赖关系:需要根据类,创建对象
- 数量关系:根据一个类,可以创建出多个对象
3.对象内存图
4.成员变量和局部变量
5.this关键字
6.构造方法
6.1构造器
- 初始化一个新建的对象
- 构造、创建对象的时候,所调用的方法
6.2格式:
- 方法名与类名相同,大小写也要一致
- 没有返回值类型,连void都没有
- 没有具体的返回值(不能由return带回结果数据)
6.3执行时机:
- 创建对象的时候调用,每创建一次对象,就会执行一次构造方法
- 不能手动调用构造方法
6.4构造方法作用
- 本质作用:创建对象 结合构造方法
- 执行时机:给对象中的属性(成员变量)进行初始化
6.5构造方法注意事项
6.5.1构造方法的创建
- 如果没有定义构造方法,系统将给出一个默认的无参数构造方法
- 如果定义了构造方法,系统将不再提供默认的构造方法
6.5.2构造方法的重载
- 构造方法也是方法,允许重载关系出现
6.5.3推荐的使用方式
- 无参数构造方法,和带参数构造方法,都自己手动给出
7.封装
7.1合理隐藏,合理暴露
7.2权限修饰符
8.综合案例
需求: 1. 展示系统中的全部电影(每部电影展示:名称、评分)。 2. 允许用户根据电影编号(id)查询出某个电影的详细信息
8.1数据类Movie
package com.domain;
public class Movie {
private int id;
private String title;
private String time;
private double score;
private String area;
private String type;
private String director;
private String starring;
public Movie() {
}
public Movie(int id, String title, String time, double score, String area, String type, String director, String starring) {
this.id = id;
this.title = title;
this.time = time;
this.score = score;
this.area = area;
this.type = type;
this.director = director;
this.starring = starring;
}
/**
* 获取
* @return id
*/
public int getId() {
return id;
}
/**
* 设置
* @param id
*/
public void setId(int id) {
this.id = id;
}
/**
* 获取
* @return title
*/
public String getTitle() {
return title;
}
/**
* 设置
* @param title
*/
public void setTitle(String title) {
this.title = title;
}
/**
* 获取
* @return time
*/
public String getTime() {
return time;
}
/**
* 设置
* @param time
*/
public void setTime(String time) {
this.time = time;
}
/**
* 获取
* @return score
*/
public double getScore() {
return score;
}
/**
* 设置
* @param score
*/
public void setScore(double score) {
this.score = score;
}
/**
* 获取
* @return area
*/
public String getArea() {
return area;
}
/**
* 设置
* @param area
*/
public void setArea(String area) {
this.area = area;
}
/**
* 获取
* @return type
*/
public String getType() {
return type;
}
/**
* 设置
* @param type
*/
public void setType(String type) {
this.type = type;
}
/**
* 获取
* @return director
*/
public String getDirector() {
return director;
}
/**
* 设置
* @param director
*/
public void setDirector(String director) {
this.director = director;
}
/**
* 获取
* @return starring
*/
public String getStarring() {
return starring;
}
/**
* 设置
* @param starring
*/
public void setStarring(String starring) {
this.starring = starring;
}
}
8.2业务类MovieService
package com.test;
import com.domain.Movie;
import java.util.Scanner;
public class MovieService {
private Movie[] movies;
private Scanner sc = new Scanner(System.in);
public MovieService(Movie[] movies) {
this.movies=movies;
}
/** 启动电影信息管理系统 */
public void start(){
lo:
while (true) {
System.out.println("----------电影信息系统----------");
System.out.println("请输入您的选择:");
System.out.println("1. 查询全部电影信息");
System.out.println("2. 根据id查询电影信息");
System.out.println("3. 退出");
int choice = sc.nextInt();
switch (choice){
case 1:
queryMovieInfo();
//System.out.println("查询全部电影信息");
break;
case 2:
queryMovieInfoById();
//System.out.println("根据id查询电影信息");
break;
case 3:
System.out.println("感谢您的使用,再见!");
break lo;
default:
System.out.println("您的输入有误,请检查");
break;
}
}
}
/** 此方法根据电影编号,查询电影详细信息*/
private void queryMovieInfoById() {
System.out.println("请输入您要查询的电影编号:");
int id = sc.nextInt();
for (int i = 0; i < movies.length; i++) {
Movie movie = movies[i];
if (movie.getId()==id){
System.out.println(movie.getId()+"----"+movie.getTitle()+"----"+movie.getTime()
+"----"+movie.getScore()+"----"+movie.getArea()+"----"+movie.getType()
+"----"+movie.getDirector()+"----"+movie.getStarring());
return;
}
}
System.out.println("您输入的编号不存在,请检查!");
}
/**展示系统中全部的电影(名称,评分)*/
private void queryMovieInfo() {
for (int i = 0; i < movies.length; i++) {
Movie movie = movies[i];
System.out.println(movie.getTitle()+"---"+movie.getScore());
}
}
}
8.3测试类 Test
package com.test;
import com.domain.Movie;
public class Test {
public static void main(String[] args) {
Movie movie1=new Movie(1,"东八区的先生们","2022",2.1,"中国大陆","剧情 喜剧","夏睿","张翰 王晓晨");
Movie movie2 = new Movie(2, "上海堡垒", "2019", 2.9, "中国大陆", "爱情 战争 科幻", "滕华涛", "鹿晗 舒淇");
Movie movie3 = new Movie(3, "纯洁心灵·逐梦演艺圈", "2015", 2.2, "中国大陆", "剧情 喜剧", "毕志飞", "朱一文 李彦漫");
Movie [] movies = {movie1,movie2,movie3};
for (int i = 0; i < movies.length; i++) {
System.out.println(movies[i]);
}
MovieService movieService=new MovieService(movies);
movieService.start();
}
}
标签:Java,String,构造方法,--,Movie,System,return,public,第七天
From: https://blog.csdn.net/Y_Y1230704/article/details/142632409