- 对面向对象的理解
2.类和对象
3.定义类
类的注意事项·:
具体写法
4.创建对象
5.构造器
构造器的示例:
packageConstructor;
publicclassTeacher{
publicStringname;
publicintidNum;
//构造器的语法public类名(参数列表){}
//构造器可以重载;
//this关键字的应用场景主要为形参名与成员名冲突的情况,用this.成员名代表成员
//可以理解为一种特殊的方法
//构造器的主要应用场景为:在创建对象的时候为其初始化
publicTeacher()
{
//这是无参数构造器
System.out.println("这是无参数构造器~~");
}
publicTeacher(Stringname)
{
//这是有参数构造器
this.name=name;
System.out.println("这名老师的名字为:"+this.name);
}
publicTeacher(Stringname,intidNum)
{this.name=name;
this.idNum=idNum;
System.out.println(this.name+"老师的职工号为"+idNum);
}
}
6.this关键字
7.封装
8.标准JavaBean
实例:
packageJavaBean;
publicclassStudent{
privateStringname;
privateintidNum;
privatedoublescores;
publicStudent(){
}
publicStudent(Stringname,intidNum,doublescores){
this.name=name;
this.idNum=idNum;
this.scores=scores;
}
//JavaBean实体是一个具体的实体,可以用于储存实体的信息
//java开发中常常将实物信息的存储和处理分开
//java实体可以说是一个只有getset方法的特别的类
publicStringgetName(){
returnname;
}
publicvoidsetName(Stringname){
this.name=name;
}
publicintgetIdNum(){
returnidNum;
}
publicvoidsetIdNum(intidNum){
this.idNum=idNum;
}
publicdoublegetScores(){
returnscores;
}
publicvoidsetScores(doublescores){
this.scores=scores;
}
}
9.成员变量和局部变量的区别
案例:
创建一个java实体类
packageobjectDemo;
publicclassMovie{
privateintId;
privateStringname;
privatedoubleprice;
privateStringdirector;
privateStringactor;
publicMovie(){
//构建无参构造器
}
privateStringInfo;
//构建有参构造器,方便对成员变量初始化
publicMovie(intId,Stringname,doubleprice,Stringdirector,Stringactor,StringInfo){
this.Id=Id;
this.name=name;
this.price=price;
this.director=director;
this.actor=actor;
this.Info=Info;
}
publicintgetId(){
returnId;
}
publicvoidsetId(intid){
Id=id;
}
publicStringgetName(){
returnname;
}
publicvoidsetName(Stringname){
this.name=name;
}
publicdoublegetPrice(){
returnprice;
}
publicvoidsetPrice(doubleprice){
this.price=price;
}
publicStringgetDirector(){
returndirector;
}
publicvoidsetDirector(Stringdirector){
this.director=director;
}
publicStringgetActor(){
returnactor;
}
publicvoidsetActor(Stringactor){
this.actor=actor;
}
publicStringgetInfo(){
returnInfo;
}
publicvoidsetInfo(Stringinfo){
Info=info;
}
}
创建一个操作的类
packageobjectDemo;
importjava.util.Scanner;
publicclassmovieOperate{
privateMovie[]movies;//用数组储存电影
//利用有参构造器传入电影数组
publicmovieOperate(Movie[]movies){
this.movies=movies;
}
//实现功能一的方法
publicvoidshowAllMovies(){
System.out.println("----------所有电影的信息如下:-----------");
for(inti=0;i<movies.length;i++){
Moviem=movies[i];
System.out.println(m.getName()+"电影的id为:"+m.getId());
System.out.println("价格为:"+m.getPrice());
System.out.println("--------------------------------------");
}
}
//实现第二个功能的方法
publicvoidseekMoviesById(intId){
System.out.println("---请您输入要查询电影的id:---");
for(inti=0;i<movies.length;i++){
Moviem=movies[i];
if(m.getId()==Id){
System.out.println("该电影的名字为:"+m.getName());
System.out.println("电影的价格为:"+m.getPrice());
System.out.println("电影的导演为:"+m.getDirector());
System.out.println("电影的主演为:"+m.getActor());
System.out.println("电影的其他信息为:"+m.getInfo());
return;
}
}
System.out.println("您输入的电影id有问题,请您重新输入!");
}
}
创建一个测试类
packageobjectDemo;
importjava.util.Scanner;
publicclassTextMovie{
publicstaticvoidmain(String[]args){
Scannersc=newScanner(System.in);
//电影基本信息
//1,"水门桥",38.9,“徐克","吴京",“12万人想看"
//2,“出拳吧",39,“唐晓白",“田雨”,“3.5万人想看”
//3,"月球陨落",42,"罗兰","贝瑞","17.9万人想看"
//4,"一点就到家",35,"许宏字","刘吴然","1日.8万人想看"
Movie[]movies=newMovie[4];
movies[0]=newMovie(1,"水门桥",38.9,"徐克","吴京","12万人想看");
movies[1]=newMovie(2,"出拳吧",39,"唐晓白","田雨","3.5万人想看");
movies[2]=newMovie(3,"月球陨落",42,"罗兰","贝瑞","17.9万人想看");
movies[3]=newMovie(4,"一点就到家",35,"许宏字","刘吴然","1日.8万人想看");
movieOperateoperate=newmovieOperate(movies);
while(true){
System.out.println("请您输入要查询业务的编号:");
System.out.println("1.查看所有电影的基本信息");
System.out.println("2.输入电影的id,查看具体电影信息");
intcommand=sc.nextInt();
switch(command){
case1:operate.showAllMovies();break;
case2:
System.out.println("请您输入id:");
intseek=sc.nextInt();
operate.seekMoviesById(seek);break;
default:
System.out.println("您输入的编号有问题,请重新输入!");
}
}
}
}