问答题:

1.在声明类时,类名应该遵守哪些习惯?

  1.与文件名相同2.首字母大写

2.类体内容中有那两类比较重要的成员?

  1.成员变量2.方法

3.实例方法可以操作类变量吗?类方法可以操作实例变量吗?

  类中的实例方法可以操作类变量

因为类总是先于实例存在的 实例只是类在特定状态下的一个特定对象 所以必须类存在 才能从类创建实例 所以实例方法可以操作类变量 因为类变量肯定存在
  类方法不可以操作实例变量
因为类方法的作用域在类上 类本身并不知道自己被创建了多少实例 这些实例哪些还存在 所以类方法没有办法访问到实例变量

4.当类的字节码加载到内存时,类变量一定分配了内存空间吗?

  是的

5.类的实例变量在什么时候分配内存空间?

  new的时候

6.一个类的类变量被该类创建的所有对象共享吗?

  是的

7.不同对象的实例变量分配的内存空间地址一定不同嘛?

  不一定

8.上面叫方法的重载?构造方法可以重载嘛?

  重载(overload),方法名一样,但是返回类型或者传参不一样。构造方法也可以重载。

9.为什么类方法不可以调用实例方法。

  实例方法没有加载进内存,必须以new的方式加载

10.为什么类方法不能操作实例成员变量?

  没加载进内存,理由和上一题一样

11.实例方法可以用类名直接调用吗?

  不行,先new出来

12.关键字this可以出现在构造方法中?可以出现在实例方法中?可以出现在类方法中?

  都行

13.源文件声明编写的类一定在同一包中嘛?

  不一定,可以导包

14.“import java.awt.*;”和"import java.awt.Button"有什么不同?

  前一个内存加载awt下所有类,第二个只加载button

15.程序中如果使用了“import java.util.*;”;程序运行时,要加载java.util包中全部类到内存嘛?

  要的

16.有哪几种访问权限修饰符,说出作用。

  public 所有地方均能访问该类

  private 除本类都不能访问

  protected 除本类,本包和子类(其他包下子类也行),其他包下都不能访问

  不加(Default)  除了本类,本包,子类和其他类都不能访问

17.怎么反编译一个类

  使用java自带的javap

18.请写出下列代码中类A的输出结果(题目少数据)

作业题

1.编写一个类,该类创建对象可以计算等差数列的和。

  

package com.littlepage.test;

public class ArithmeticProgression {

    //成员变量
private int init;//初始值
private int subValue;//公差
private int num;//项数 //空参构造
public ArithmeticProgression() { } //有参构造
public ArithmeticProgression(int init, int subValue,int num) {
super();
this.init = init;
this.subValue = subValue;
this.num=num;
} //get,set方法
public int getInit() {
return init;
}
public void setInit(int init) {
this.init = init;
}
public int getSubValue() {
return subValue;
}
public void setSubValue(int subValue) {
this.subValue = subValue;
}
public int getNum() {
return num;
} public void setNum(int num) {
this.num = num;
} //计算方法
public int caculate() {
return init*num+num*(num-)*subValue/;
}
}
package com.littlepage.test;

public class Test4 {
public static void main(String[] args) {
ArithmeticProgression a=new ArithmeticProgression(,,);
System.out.println(a.caculate());
}
} 控制台:15

2.编写一个类,该类创建的对象可以输出英文字母表(上一题是答案我用标准类来写,这题我只写构造)

package com.littlepage.test;

public class EnglishTable {
public EnglishTable() {
System.out.println("abcdefghijklmnopqrstuvwxyz");
}
}
package com.littlepage.test;

public class Test4 {
public static void main(String[] args) {
new EnglishTable();
}
}
控制台:

abcdefghijklmnopqrstuvwxyz


3.编写一个类,该类封装了一元二次方程共有的属性和功能,即刻画系数的三个成员变量和计算实数根的方法,要求,该类各个对象是共享常量

package com.littlepage.test;

public class Equation {
//成员变量
private int a;
private int b;
private int c;
//无参构造
public Equation() {
a=;
b=;
c=;
}
//有参构造
public Equation(int a, int b, int c) {
super();
this.a = a;
this.b = b;
this.c = c;
}
//get,set方法
public int getA() {
return a;
}
public void setA(int a) {
this.a = a;
}
public int getB() {
return b;
}
public void setB(int b) {
this.b = b;
}
public int getC() {
return c;
}
public void setC(int c) {
this.c = c;
}
//计算方法
public void caculate() {
if(b*b-*a*c<) System.out.println(a+"x^2+"+b+"x+"+c+"=0无实数根");
else {
double d=(-b+(b*b-*a*c))/(*a);
double e=(-b-(b*b-*a*c))/(*a);
System.out.println(a+"x^2+"+b+"x+"+c+"=0的两根为"+d+","+e);
}
}
}
package com.littlepage.test;

public class Test4 {
public static void main(String[] args) {
Equation eq=new Equation(,,);
eq.caculate();
}
}
控制台:1x^2+2x+1=0的两根为-1.0,-1.0

4.编写两个类AB,A创建的对象可以计算两个正整数的最大公约数,B创建的对象可以计算两个数的最小公倍数,要求:B类有一个成员变量是用A声明的对象

package com.littlepage.test;

public class A {
private int a;
private int b;
public A() {
}
public A(int a, int b) {
super();
this.a = a;
this.b = b;
}
public int getA() {
return a;
}
public void setA(int a) {
this.a = a;
}
public int getB() {
return b;
}
public void setB(int b) {
this.b = b;
}
public int caculate() {
int c=;
if(a>b) {
c=a;
a=b;
b=c;
}
for(int i=;i<=a;i++) {
if(a%i==&&b%i==) {
c=i;
}
}
return c;
}
}
package com.littlepage.test;

public class B {
A a; public B() {
super();
// TODO Auto-generated constructor stub
} public B(A a) {
super();
this.a = a;
} public A getA() {
return a;
} public void setA(A a) {
this.a = a;
}
public int caculate() {
return a.getA()*a.getB()/a.caculate();
}
}
package com.littlepage.test;

public class Test4 {
public static void main(String[] args) {
A a=new A(,);
System.out.println(a.caculate());
B b=new B(a);
System.out.println(b.caculate());
}
}
控制台:

5.编写使用了包语句的类,然后在应用程序中用import语句引入,并用该类创造对象

package com.littlepage.servlet;

import com.littlepage.test.ArithmeticProgression;

public class Test2 {
ArithmeticProgression ap=new ArithmeticProgression();
}
该题引用第一题编写的类库

JavaSE习题 第四章 类与对象的更多相关文章

  1. java面向对象编程——第四章 类和对象

    OO:面向对象 OOP:面向对象编程 OOA:面向对象分析 OOD:面向对象设计 结构化编程:从顶向下,将一个大问题分解成更小的任务,然后为每一个更小的任务编写一个过程.最后程序员会编写一个主过程来启 ...

  2. [Effective Java]第四章 类和接口

    声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...

  3. c++ 吕凤翥 第六章 类和对象(二)

    c++ 吕凤翥 第六章 类和对象(二) 指针   引用  和数组 一:对象指针和对象引用 1.指向类的成员的指针 分为指向成员变量和指向成员函数两种指针 成员变量的格式:     类型说明符  类名: ...

  4. Java学习日记基础篇(四)——类,对象之成员变量,成员方法,构造方法

    面向对象(Object Oriented) 一.面向对象杂谈 面向对象(Object Oriented),我的翻译是以物体为目标的,就是说编程的时候是建立一个物体,然后对这个物体进行操作. Java语 ...

  5. JAVA入门第二季 第一章 类和对象

    面向对象编程 Object Oriented Programming OOP 第一.什么是类和对象 在具体说明类和对象之前,先说说别的. 眼睛在人类身体上最为有用的器官.如果一个没有了眼睛,这个人与世 ...

  6. 《Python CookBook2》 第四章 Python技巧 对象拷贝 && 通过列表推导构建列表

    (先学第四章) 对象拷贝 任务: Python通常只是使用指向原对象的引用,并不是真正的拷贝. 解决方案: >>> a = [1,2,3] >>> import c ...

  7. JAVA基础第三章-类与对象、抽象类、接口

    业内经常说的一句话是不要重复造轮子,但是有时候,只有自己造一个轮子了,才会深刻明白什么样的轮子适合山路,什么样的轮子适合平地! 我将会持续更新java基础知识,欢迎关注. 往期章节: JAVA基础第一 ...

  8. Java入门第二季第一章类和对象知识点

    Java 中的 static 使用之静态方法 1. 静态方法中可以直接调用同类中的静态成员,但不能直接调用非静态成员.如: 如果希望在静态方法中调用非静态变量,可以通过创建类的对象,然后通过对象来访问 ...

  9. C# 图解教程 第四章 类的基本概念

    类的基本概念 类的概述声明类 类成员字段方法 创建变量和类的实例为数据分配内存实例成员访问修饰符 私有访问和公用访问 从类的内部访问成员从类的外部访问成员综合应用 类的基本概念 类的概述 类是一种活动 ...

随机推荐

  1. java-工厂方法模式学习笔记

    1.工厂模式分三种 1.1 普通工厂模式:就是建立一个工厂类,对实现了同一接口的一些类进行实例创建,如下图所示: 就以老司机开车(土豪开奔驰,宝马:屌丝骑自行车)为例,说明一下普通工厂模式: 首先,创 ...

  2. Spring MVC数据绑定

    1.绑定默认数据类型 当前端请求参数较为简单的时候,后台形参可以直接使用SpringMVC提供的参数类型来绑定数据. HttpServletRequest:通过request对象获取请求信息: Htt ...

  3. java.lang.NoClassDefFoundError: org/apache/commons/io/output/DeferredFileOutputStream

    java.lang.ClassNotFoundException: org.apache.commons.io.output.DeferredFileOutputStream at org.apach ...

  4. Golang字符串格式化

    Go对字符串格式化提供了良好的支持.下面我们看些常用的字符串格式化的例子. package main import ( "fmt" "os" ) type po ...

  5. golang json用法讲解

    简介 json格式可以算我们日常最常用的序列化格式之一了,Go语言作为一个由Google开发,号称互联网的C语言的语言,自然也对JSON格式支持很好.但是Go语言是个强类型语言,对格式要求极其严格而J ...

  6. atomic 原子操作

    原子操作:操作仅由一个独立的CPU指令代表和完成.保证并发环境下原子操作的绝对安全 标准库代码包:sync/atomic atomic是最轻量级的锁,在一些场景下直接使用atomic包还是很有效的 C ...

  7. opencv学习之路(13)、图像阈值化threshold

    一.图像阈值化简介 二.固定阈值 三.自适应阈值 #include<opencv2/opencv.hpp> using namespace cv; void main(){ Mat src ...

  8. UVa 11019 Matrix Matcher - Hash

    题目传送门 快速的vjudge传送门 快速的UVa传送门 题目大意 给定两个矩阵S和T,问T在S中出现了多少次. 不会AC自动机做法. 考虑一维的字符串Hash怎么做. 对于一个长度为$l$的字符串$ ...

  9. noip模拟【tea】

    tea [题目描述]有n个容量为V的瓶子,第i个瓶子中装着a[i]个单位的tea,使所有瓶子内的tea在不 超过其容量的前提下,非空的瓶子最少.在一个单位时间内,可以同时将多个瓶子中的tea倒入另外多 ...

  10. Win32汇编学习(3):简单的窗口

    这次我们将写一个 Windows 程序,它会在桌面显示一个标准的窗口,以此根据代码来学习如何创建一个简单的窗口. 理论: Windows 程序中,在写图形用户界面时需要调用大量的标准 Windows ...