如何定义类(java定义小猫类)

懵懂先生 投稿文章如何定义类(java定义小猫类)已关闭评论84阅读模式

文章源自略懂百科-http://wswcn.cn/84912.html

首先

java是面向对象的,关注的是对象,是将一件事情分成很多不同对象,靠对象与对象之间的交互完成。文章源自略懂百科-http://wswcn.cn/84912.html

类和对象的实例化

类是一类对象的统称,而对象是这一类具体化的一个实例。一个类可以产生多个对象文章源自略懂百科-http://wswcn.cn/84912.html

基本语法

在java中使用关键字class声明类。文章源自略懂百科-http://wswcn.cn/84912.html

//创建类classPerson{//成员变量(也可以说是字段、属性)publicString name;publicintage;publicString sex;//成员方法publicvoideat(){
System.out.println("在吃饭");
}publivoidsleep(){
System.out.println("在睡觉");
}
}文章源自略懂百科-http://wswcn.cn/84912.html

类的实例化

类的实例化:通过类类型创建对象的过程文章源自略懂百科-http://wswcn.cn/84912.html

类就像模型一样的东西,限定了成员。 类可以在实例化多个对象,对象才能存储实际数据,占用物理内存存储成员属性。文章源自略懂百科-http://wswcn.cn/84912.html

在类的实例化过程中通过关键字new实例化对象;使用 . 可以访问对象属性和方法 ;一个类可以实例化多个对象。文章源自略懂百科-http://wswcn.cn/84912.html

publicclassPerson{//属性publicString name;publicintage;//成员方法publicvoideat(){
System.out.println("吃饭");
}publicstaticvoidmain(String[] args){
Person person1 =newPerson();//通过关键字new实例化对象Person person2 =newPerson();
person.name ="冷";//调用属性需要通过对象引用调用person.age =18;
person1.eat();//调用成员方法需要通过对象引用调用}
}文章源自略懂百科-http://wswcn.cn/84912.html

类的成员

1、字段(属性或变量)在类中但方法的外部成为字段或属性或变量。用来描述一个类中包含哪些数据。文章源自略懂百科-http://wswcn.cn/84912.html

使用 . 访问对象字段;可以对字段进行读写;若一个对象的字段没有进行显式初始化,那么会被设置为默认值。文章源自略懂百科-http://wswcn.cn/84912.html

classPerson{//属性publicString name;publicintage;publicString sex;
}publicclassMain{publicstaticvoidmain(String[] args){
Person person =newPerson();//通过关键字new实例化对象person.name ="冷";
System.out.println(person.name);
System.out.println(person,sex);
System.out.println(person.age);
}
}文章源自略懂百科-http://wswcn.cn/84912.html

类的方法

类的方法用来描述一个对象的行为。此时类的方法不用static修饰。文章源自略懂百科-http://wswcn.cn/84912.html

classPerson{//成员方法publicvoideat(){
System.out.println("吃饭");
}publicvoidshow(){//表示Person对象具有的自我介绍行为System.out.println(name +"今年"+ age +"岁啦~");
}
}publicclassMain{publicstaticvoidmain(String[] args){
Person person =newPerson();//通过关键字new实例化对象person.name ="冷";
person.age =18;
person.show();
}
}文章源自略懂百科-http://wswcn.cn/84912.html

方法中还有一种特殊的方法称为构造方法。文章源自略懂百科-http://wswcn.cn/84912.html

构造方法

构造方法在实例化对象时自动调用该方法文章源自略懂百科-http://wswcn.cn/84912.html

构造方法方法名必须和类名相同构造方法不用声明返回类型每一个类中至少有一个构造方法(当没有明确定义构造方法时,编译器会自动生成一个无参的构造方法;但若定义了构造方法则不会生成无参构造方法;构造方法支持重载)文章源自略懂百科-http://wswcn.cn/84912.html

static关键字

修饰属性同一个类的不同对象共用一个静态属性。在访问static修饰的属性时,访问方法为类名.属性文章源自略懂百科-http://wswcn.cn/84912.html

classTestDemo{publicintx;publicstaticinty;//y被static修饰,属于类本身,只有一份}publicclassTest{publicstaticvoidmain(String[] args){
TestDemo td1 =newTestDemo();
td1.x++;//x没有显式定义,默认为0,x++后,x=1TestDemo.y++;//y=1System.out.println(td1.x);
System.out.println(TestDemo.y);
System.out.println("===========");
TestDemo td2 =newTestDemo();
td2.x++;
TestDemo.y++;//y被static修饰,因此所有类共享 此时y = 1+1;System.out.println(td2.x);
System.out.println(TestDemo.y);
}
}文章源自略懂百科-http://wswcn.cn/84912.html

输出结果:文章源自略懂百科-http://wswcn.cn/84912.html

修饰方法使用static修饰的方法称为静态方法。文章源自略懂百科-http://wswcn.cn/84912.html

静态方法属于类,不属于对象可以直接调用静态方法,不用实例化静态方法可以访问静态成员变量,并对静态成员变量赋值文章源自略懂百科-http://wswcn.cn/84912.html

classTestDemo{publicintx ;publicstaticinty ;//默认y初始值为0publicstaticvoidfunc(){
y =100;//定义静态方法对静态变量赋值,y=100}
}publicclassTest{publicstaticvoidmain(String[] args){
TestDemo.func();
System.out.println(TestDemo.y);
}
}文章源自略懂百科-http://wswcn.cn/84912.html

封装

private实现封装

public和private都表示成员属性访问权限文章源自略懂百科-http://wswcn.cn/84912.html

public修饰的成员变量和方法可以直接被类的调用者使用private修饰的成员变量和方法不可以被调用者使用,需要使用getter/setter方法获取或使用private属性文章源自略懂百科-http://wswcn.cn/84912.html

getter/setter方法

publicclassStudent{privateString name;privateintage;//设置学生姓名publicvoidsetName(String name){this.name = name;//this引用表示调用该方法的对象(this表示当前对象的引用)}//获取学生姓名publicStringgetName(){returnname;
}publicvoidsetAge(intage){this.age = age;
}publicintgetAge(){returnage;
}publicstaticvoidmain(String[] args){
Student student =newStudent();
student.setName("就这");
student.setAge(3);
String sName = student.getName();intsAge = student.getAge();
System.out.println(sName);
System.out.println(sAge);
}
}文章源自略懂百科-http://wswcn.cn/84912.html

this关键字

this表示当前对象的引用,通过借助this可以访问对象的属性和方法文章源自略懂百科-http://wswcn.cn/84912.html

publicclassTeacher{privateString name;privateString sex;privateintage;publicTeacher(){this("啾咪","女",3);//this调用构造函数,必须显式放在第一行}//构造函数重载publicTeacher(String name,String sex,intage){this.name = name;this.age = age;this.sex = sex;
}publicvoidshow(){
System.out.println("name:"+ name+" sex:"+sex+" age:"+age);
}publicstaticvoidmain(String[] args){
Teacher teacher =newTeacher();
teacher.show();
}
}文章源自略懂百科-http://wswcn.cn/84912.html

代码块

字段的初始化除了就地初始化和构造方法初始化外,还有代码块初始化。使用{ }定义的代码称为代码块代码块根据定义位置和关键字可以分为四种:普通代码块、构造代码块、静态代码块和同步代码块文章源自略懂百科-http://wswcn.cn/84912.html

普通代码块定义在方法中的代码块称为普通代码块文章源自略懂百科-http://wswcn.cn/84912.html

构造代码块定义在类中的代码块,不加修饰符文章源自略懂百科-http://wswcn.cn/84912.html

静态代码块使用static关键字定义的代码块。静态代码块不论生成多少对象,都只会执行一次,而且是最先执行的;静态代码块执行完成后,构造代码块执行,再是执行构造函数文章源自略懂百科-http://wswcn.cn/84912.html

toString方法

toString方法是将对象直接转换成字符串文章源自略懂百科-http://wswcn.cn/84912.html

publicclassStudent{privateString name;privateintage;publicStudent(String name ,intage){this.name = name;this.age = age;
}publicvoidshow(){
System.out.println("name:"+name+" age:"+age);
}//重写Object的toString方法@OverridepublicStringtoString(){return"Person{"+"name:"+ name ++" age:"+ age +"}";文章源自略懂百科-http://wswcn.cn/84912.html

}publicstaticvoidmain(String[] args){
Student student =newStudent("这就",3);
student.show();
System.out.println(student);//toString方法会在println时自动调用}
}文章源自略懂百科-http://wswcn.cn/84912.html

继承

在生活中,事物与事物之间有一定的关联,因此在创建类时类和类之间也会有一定的关联。就像生活中的猫和狗都有一些动物特有的属性和行为,因此在写代码时猫类和狗类可以继承动物类。文章源自略懂百科-http://wswcn.cn/84912.html

//定义动物类classAnimal{publicString name;publicvoideat(String food){
System.out.println(this.name +"正在吃"+food);
}publicAnimal(String name){this.name = name;
}
}//定义猫类继承动物类classCatextendsAnimal{publicCat(String name){super(name);//使用super调用父类属性}
}//定义狗类继承动物类classDogextendsAnimal{publicDog(String name){super(name);
}
}publicclassTestDemo{publicstaticvoidmain(String[] args){
Cat cat =newCat("猫咪");
cat.eat("猫粮");
Dog dog =newDog("旺柴");
dog.eat("骨头");
}
}文章源自略懂百科-http://wswcn.cn/84912.html

在java中一个子类只能继承一个父类子类会继承父类所有 public 修饰的属性和方法父类中使用 private 修饰的属性和方法,子类是无法访问的子类的实例中,也包含着父类的实例,可以使用 super 关键字引用父类实例文章源自略懂百科-http://wswcn.cn/84912.html

多态

多态表示同一个行为有不同的表现形式。比如动物的叫声这一行为,猫会发出喵的声音,狗会发出汪汪的声音,羊会发出咩的声音。同一个时间发生在不同的对象身上会有不同的行为产生,叫多态文章源自略懂百科-http://wswcn.cn/84912.html

packagefirst;classAnimal{publicvoidvoice(){
}
}classCatextendsAnimal{@Overridepublicvoidvoice(){
System.out.println("喵");
}
}classDogextendsAnimal{@Overridepublicvoidvoice(){
System.out.println("汪汪");
}
}classSheepextendsAnimal{@Overridepublicvoidvoice(){
System.out.println("咩");
}
}publicclassTestDemo{publicstaticvoidmain(String[] args){
Animal animal1 =newCat();
Animal animal2 =newDog();
Animal animal3 =newSheep();
animal1.voice();
animal2.voice();
animal3.voice();
}
}文章源自略懂百科-http://wswcn.cn/84912.html

输出结果:文章源自略懂百科-http://wswcn.cn/84912.html

最后

大家看完有什么不懂的可以在下方留言讨论,也可以关注我私信问我。谢谢你的观看,觉得文章对你有帮助的话记得关注我点个赞支持一下!文章源自略懂百科-http://wswcn.cn/84912.html

文章源自略懂百科-http://wswcn.cn/84912.html

懵懂先生
  • 本文由 发表于 2023年1月7日 17:32:15
  • 转载请注明:http://wswcn.cn/84912.html
投稿文章

千岁歌曲介绍(千岁歌词)

近日,新生代音乐才子刘宇的最新单曲《千岁》将在年末温情上线,此消息一出就引起不少小宇宙们的雀跃欢呼,终于又可以听到刘宇那被天使吻过的嗓音了,更有粉丝大胆预测,《千岁》将再一次掀起古风音乐热潮。其实这样...
投稿文章

回迁房是自己选房还是抽随机

(郭武辉)1月10日上午,官渡区关上街道双桥社区山海湾晶都一号售楼中心热闹非凡,双桥社区高家村回迁安置房选房工作正在进行中,居民纷纷陆续前来办理各项手续。 售楼中心大厅里,居民早早来到回迁房安置区等待...
投稿文章

土和火结合的字都有哪些(属于土火的字有哪些)

解读 五行相生,是指木、火、土、金、水之间存在着有序的递相资生、助长和促进的关系。五行相生次序是:木生火,火生土,土生金,金生水,水生木。在五行相生关系中,任何一行都具有生我和我生两方面的关系。 《难...
投稿文章

泸西有哪些特产 云南泸西特产

二十四节气中 名字最有诗意的当属白露 蒹葭苍苍,白露为霜 渲染出这一节气的独特韵味 白露至 意味着天气逐渐转凉 人们也易出现秋燥症 如何解燥? 还得吃梨 被古人称为百果之宗的梨 具有生津止渴、滋阴润燥...