java面向对象上

谈谈你对类和对象的理解?
答:1.对象是类的一个实例,有状态和行为,类是一个模板,描述对象的状态和行为,我们通过 将对象实例化,调用类中的成员变量相当于描述对象的状态,调用类中的成员方法相当于
描述对象的行为,通过这种方法,我们就将类和对象一一对应起来。
2.类可以看成是创建 Java 对象的模板。
3.在一个类中包括类变量(用 static 修饰)、成员变量(在类中定义)、局部变量(在方法中定义,相当于 对象的属性)、构造方法(和类名一样,可以有参数,也可以无参数)、成员方法(相当于对象的行为)。
4.如何创建对象:对象是根据类创建的,需要三步:声明一个对象,然后用 new 来实例化和初始化对象。
5.package 和 import: package 的作用就是 c++ 的 namespace 的作用,防止名字相同的类产生冲突。Java 编译器在编译时,直 接根据 package 指定的信息直接将生成的 class 文件生成到对应目录下。如 packageaaa.bbb.ccc 编译器就 将该 .java 文件下的各个类生成到 ./aaa/bbb/ccc/ 这个目录。 import 是为了简化使用 package 之后的实例化的代码。假设 ./aaa/bbb/ccc/ 下的 A 类,假如没有 import, 实例化 A 类为:newaaa.bbb.ccc.A(),使用 importaaa.bbb.ccc.A 后,就可以直接使用 newA() 了,也就是 编译器匹配并扩展了 aaa.bbb.ccc. 这串字符串。
6.源文件声明规则 在本节的最后部分,我们将学习源文件的声明规则。当在一个源文件中定义多个类,并且还有 import 语句 和 package 语句时,要特别注意这些规则。 一个源文件中只能有一个 public 类 一个源文件可以有多个非 public 类 源文件的名称应该和 public 类的类名保持一致。例如:源文件中 public 类的类名是 Employee,那么源文件 应该命名为 Employee.java。 如果一个类定义在某个包中,那么 package 语句应该在源文件的首行。 如果源文件包含import语句,那么应该放在package语句和类定义之间。如果没有package语句,那么import 语句应该在源文件中最前面。 import 语句和 package 语句对源文件中定义的所有类都有效。在同一源文件中,不能给不同的类不同的包 声明。 类有若干种访问级别,并且类也分不同的类型:抽象类和 final 类等。这些将在访问控制章节介绍。 除了上面提到的几种类型,Java 还有一些特殊的类,如:内部类、匿名类。
1.2.
成员变量和局部变量有什么区别?
答:成员变量与局部变量的区别
1、在类中的位置不同
成员变量:在类中方法外面
局部变量:在方法或者代码块中,或者方法的声明上(即在参数列表中)
2、在内存中的位置不同,可以看看 Java 程序内存的简单分析
成员变量:在堆中(方法区中的静态区)
局部变量:在栈中
3、生命周期不同
成员变量:随着对象的创建而存在,随着对象的消失而消失
局部变量:随着方法的调用或者代码块的执行而存在,随着方法的调用完毕或者代码块的执 行完毕而消失
4、初始值
成员变量:有默认初始值
局部变量:没有默认初始值,使用之前需要赋值,否则编译器会报错
1.3.
谈谈对封装的理解? 答:封装:就是隐藏对象的属性和实现细节,仅对外提供公共访问方式。
封装的好处:隐藏类的实现细节;让使用者只能通过程序员规定的方法来访问数据;可以方便 的加入存取控制语句,限制不合理操作.
1.4.
publicclassSomething{ voiddoSomething(){ privateStrings=""; intl=s.length(); } } 有错吗?
答:错。局部变量前不能放置任何访问修饰符
1.5.
写出结果。
(关于参数传递) publicclassTest { publicstaticvoidshow(inti,intj) { i+=j; } publicstaticvoidmain(Stringargs[]) { inti=4,j=2; show(i,j); System.out.println(i); } }
输出结果:4
1.6.
写出结果。
(关于参数传递) publicclassDemo { publicstaticvoidmain(String[]args) { int[]a=newint[1]; show(a); System.out.println(a[0]);// } publicstaticvoidshow(int[]a) { a[0]++; } } 输出结果:1
1.7.
publicclassTestA{ inti; voidchange(inti){ i++; System.out.println(i); } voidchange1(TestAt){ t.i++; System.out.println(t.i); } publicstaticvoidmain(String[]args){ TestAta=newTestA(); System.out.println(ta.i);// ta.change(ta.i);// System.out.println(ta.i);// ta.change1(ta); // System.out.println(ta.i);//
}
}
输出结果:01011
1.8.
写出结果。
(关于参数传递) classValue{ inti=15; } classTest{ publicstaticvoidmain(Stringargv[]){ Testt=newTest(); t.first(); }
publicvoidfirst(){ inti=5; Valuev=newValue(); v.i=25; second(v,i); System.out.println(v.i);
}
publicvoidsecond(Valuev,inti){ i=0; v.i=20; Valueval=newValue(); v=val; System.out.print(v.i+""+i); } } A.15020 B.15015 C.20020 D.01520
答案:A
1.9.
写出结果。
(关于参数传递)`` publicclassTestArgsValue{ publicstaticvoidmain(String[]args){ inti=10; TestArgsValuetv=newTestArgsValue(); tv.method1(i); System.out.println(“i=”+i);
System.out.println(); Demod=newDemo(); System.out.println(d); tv.method2(d); System.out.println(“d.i=”+d.i);
} publicvoidmethod1(inti){ System.out.println(“i=”+i++); }
publicvoidmethod2(Demod){ System.out.println(d); System.out.println(“d.i:”+d.i++); }
}
classDemo{ inti=5; }
输出结果: i=10 i=10
text.Demo@17f6480 Text.Demo@17f6480 d.i : 5 d.i = 6
1.10.
Whatistheresultwhenyoucompileandrunthefollowingcode?A publicclassTest{ publicvoidmethod(){ for(inti=0;i<3;i++){ System.out.print(i); } System.out.print(i); } } A.0122 B.0123 C.compileerror D.noneofthese
1.11.
写出输出结果。
classDemo{ publicstaticvoidmain(String[]args){ show(0); show(1); } publicstaticvoidshow(inti){ switch(i){ default: i+=2;
case1: i+=1; case4: i+=8; case2: i+=4;
} System.out.println(“i=”+i);
}
}
输出结果: i=15 i=14
1.12.
写出输出结果。
classDemo{ publicstaticvoidmain(String[]args){ intx=1; for(show(‘a’);show(‘b’)&&x<3;show(‘c’)){ show(‘d’); x++; } } publicstaticbooleanshow(charch){ System.out.print(ch); returntrue; } }
输出结果:abdcbdcb

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java面向对象编程电子书是一本详细介绍Java面向对象编程概念、原理和实践的电子书籍。本书从基础概念开始,逐步深入到高级主题,使读者能够全面理解Java面向对象编程的核心思想和技术。 首先,本书会介绍面向对象编程的基本理念和原则,例如封装、继承和多态等。读者将能够了解到如何使用Java语言中的类、对象和方法来实现这些概念,并学会如何通过类和对象之间的关系来进行数据和行为的组织。 接着,本书将详细介绍Java中的类和对象的创建、属性和方法的定义以及对象之间的交互。读者将学会如何使用构造函数来创建对象实例,并掌握如何在类中定义属性和方法,并使用它们来访问和修改对象的状态。 另外,本书还会涵盖继承和多态的概念和实践。读者将了解到如何通过继承来创建子类,并使用多态来实现不同对象之间的统一接口。这些技术将大大提高代码的可复用性和可扩展性。 此外,本书还会介绍Java面向对象编程中的其他重要概念,如抽象类、接口、封装和设计模式等。这些概念和技术将使读者更加熟悉Java面向对象编程的整体框架,并能够应用到实际的开发中。 总而言之,Java面向对象编程电子书是一本很好的学习资料,它详细介绍了Java面向对象编程的基本概念、原则和实践。读者通过学习本书,将能够深入理解并掌握Java面向对象编程的核心思想和技术,从而提高自己的编程能力和应用水平。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值