☰
类和对象知识点罗列(一)
2026/10/8 23:25:30 网站建设 项目流程

类和对象

一、class

1.定义类时就要用class。
2.在类中可以写成员变量和成员方法。(成员变量在成员方法外定义)
例:

classWashMachine{publicStringbrand;// 品牌publicStringtype;// 型号publicdoubleweight;// 重量publicdoublelength;// ⻓publicdoublewidth;// 宽publicdoubleheight;// ⾼publicStringcolor;// 颜⾊publicvoidwashClothes(){// 洗⾐服System.out.println("洗⾐功能");}publicvoiddryClothes(){// 脱⽔System.out.println("脱⽔功能");}publicvoidsetTime(){// 定时System.out.println("定时功能");}}

3.⼀般⼀个⽂件当中只定义⼀个类
4.public修饰的类必须要和⽂件名相同

二、类的实例化

1.定义了⼀个类,就相当于定义了⼀种新的类型,就和int,double类型一样,⽤类类型创建对象的过程,称为类的实例化
2.在java中⽤new关键字,配合类名来实例化对象。(就是创建了一个该类型的变量,给这个变量赋值,就是实例化对象)
3.例:

publicclassMain{publicstaticvoidmain(String[]args){GirlFriendgirlFriend1=newGirlFriend();//通过new实例化对象GirlFriendgirlFriend2=newGirlFriend();}}

new是在堆上创建了一块内存,变量girlFriend1存的是这块内存的地址,和数组一样

4.new了一个GirlFriend,就是生成了一个女朋友,生成了一个对象,每个对象都有属于自己的属性,可以创建多个对象。

三、访问对象中的成员

1.通过对象的引用+点号可以访问对象的成员变量和成员方法
例:

girlFriend1.name="caocao";girlFriend1.eat();

2.代码的内存分布:

四、this

1.this代表当前对象的引用,在一个类中,要想在成员⽅法中访问成员变量,就要用this
2.this的类型:
即哪个对象调⽤就是哪个对象的引⽤类型(类的类型就是当前的this的类型)
3.this只能在成员方法中使用。
5.this的使用:

this.成员变量//访问对象的成员变量this.成员⽅法//访问对象的成员⽅法

例:

publicclassDate{publicintyear;publicintmonth;publicintday;publicvoidsetDay(intyear,intmonth,intday){this.year=year;this.month=month;this.day=day;}publicstaticvoidmain(String[]args){Dated=newDate();d.setDay(2020,9,15);}}

在一个类中,若有俩个成员方法,就可以在一个成员方法中用this.成员方法名来调用另一个成员方法

五、对象的构造及初始化

创建了一个对象后,有三种初始化的方法。
1.默认初始化:
对于成员变量来说,如果没有进⾏初始化,会有⼀个对应的默认值
2.就地初始化:
在声明成员变量时,就直接给出了初始值。
例:

publicclassDate{publicintyear=1900;publicintmonth=1;publicintday=1;}

3.构造方法初始化:
构造⽅法是⼀个特殊的成员⽅法,名字必须与类名相同,在创建对象时,由编译器⾃动调⽤,并且在整个对象的⽣命周期内只调⽤⼀次。
作用:
调用构造方法主要用来初始化这个对象的成员变量。
例:

publicclassDate{publicintyear;publicintmonth;publicintday;publicDate(intyear,intmonth,intday){this.year=year;this.month=month;this.day=day;System.out.println("Date(int,int,int)⽅法被调⽤了");}publicstaticvoidmain(String[]args){// 此处创建了⼀个Date类型的对象,自动调⽤了构造⽅法Dated=newDate(1999,6,9);// 输出Date(int,int,int)⽅法被调⽤了}}

此时写Date d = new Date();这种不带参数的构造方法就是错的,必须要传参

构造方法注意事项:

  1. 名字必须与类名相同
  2. 没有返回值类型,设置为void也不⾏
  3. 创建对象时由编译器⾃动调⽤,并且在对象的⽣命周期内只调⽤⼀次(相当于⼈的出⽣,每个⼈只能出⽣⼀次)(只能new的时候调用一次)
  4. 构造⽅法可以重载(⽤⼾根据⾃⼰的需求提供不同参数的构造⽅法)

当我们在类中没有写任何构造方法的时候,Java会默认提供一个无参的构造方法,⼀旦定义了其他的构造⽅法,编译器则不再⽣成。
构造方法的重载:
例:

publicclassDate{publicintyear;publicintmonth;publicintday;// ⽆参构造⽅法publicDate(){this.year=1900;this.month=1;this.day=1;}// 带有三个参数的构造⽅法publicDate(intyear,intmonth,intday){this.year=year;this.month=month;this.day=day;}publicstaticvoidmain(String[]args){Dated=newDate();}

构造⽅法中,可以通过this调⽤其他构造⽅法来简化代码:
例:

publicclassDate{publicintyear;publicintmonth;publicintday;publicDate(){this(1900,1,1);//该语句必须是第一条}// 带有三个参数的构造⽅法publicDate(intyear,intmonth,intday){this.year=year;this.month=month;this.day=day;}}

注意事项:
• this(…)必须是构造⽅法中第⼀条语句
• 不能形成环的调⽤:
例:

publicDate(){this(1900,1,1);}publicDate(intyear,intmonth,intday){this();}

绝⼤多数情况下使⽤public来修饰

六、对象的打印

1.如果我们直接打印对象的引⽤,此时输出的结果为:类路径名@对象的hashcode值。(打印地址,并且官方底层调用的是toString)
例:

publicstaticvoidmain(String[]args){Personperson=newPerson("Jim","男",18);System.out.println(person);}

2.如果想要默认打印对象中的属性该如何处理呢?答案:重写toString⽅法即可。(在要打印的对象对应的类中重写)

publicclassPerson{Stringname;Stringgender;intage;publicPerson(Stringname,Stringgender,intage){this.name=name;this.gender=gender;this.age=age;}@OverridepublicStringtoString(){return"["+name+","+gender+","+age+"]";//这样有多少个属性就要手动写多少个,太麻烦,可以编译器自动生成}publicstaticvoidmain(String[]args){Personperson=newPerson("Jim","男",18);System.out.println(person);}}// 输出结果:[Jim,男,18]

@Override是注解,表示该方法是重写的这样只要根据要重写的方法名编译器找不到要重写哪个方法,如这里写成toString2,没有哪个系统方法被重写,编译器会报错警告

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询