Java面向对象程序设计总结

类的变量:

实例变量:

      用来存储某个类对象的状态值。修饰符为public或者private。使用范围是整个类,可以在类中的任意方法内被调用。实例变量是依据其对象存在的,运行程序创建对象的同时,创建了其实例变量,程序运行完成,对象消失,其实例变量也消失。

例如:

public class Person

{

      public String name;

      public char gender;

      public double height;

      .......

}

静态变量(类变量):

      用修饰符static修饰的变量。静态变量是类的变量,不属于任何一个类的具体对象实例。它不保存在某个对象实例的内存空间中,而保存在类的内存空间的公共存储单元中。

例如: static String language="Chinese";

      区别:

      实例变量一般使用private/public作为修饰符。每个类的对象都具有一套属于自己的、在类中定义的实例变量。每个对象只能修改或者访问其自身俄实例变量,不会影响其他对象的实例变量。
      静态变量使用static修饰符。每个类的所有对象共同拥有一套类的静态变量。类和其对象都可以修改或者访问静态变量。

最终变量:

      使用修饰符final修饰的变量。其保存的数据在程序的整个执行过程中都不会改变。通常在final前面加上static,那么这个变量的实际含义就是常量。

例如:static final double pi = 3.1415926;

易失变量:

      被volatile修饰符修饰。说明该变量可能同时被几个线程所控制和修改,即该变量不仅仅被当前程序所掌握,在运行过程中可能存在其它未知的程序操作来影响和改变该变量的值。

 

类的方法:

实例方法:

      实例方法属于每个对象,只能通过类的对象调用。如果希望实例方法可以在类之外被访问,使用public;如果希望实例方法只在类内被访问,则使用private。

静态方法:

      静态方法使用static修饰,是属于某个类的,它在内存空间中的内容将随类的声明而进行分配和装载,不被任何一个对象所单独拥有。静态方法不能操纵和处理属于某个对象的实例变量,而只能处理属于整个类的静态变量,亦即静态方法只能处理静态变量或者调用静态方法。静态方法不能访问实例变量,所以在静态方法中不能使用关键字this。

 

 关键字this:

      作用是当需要在类的实例方法中指向调用该实例的对象时。必须用this的情况:

      1、局部变量与实例变量同名。(this最常见的应用是在类的构造方法和实例方法中解决局部变量与实例变量同名的问题)在参数名或者局部变量名与实例变量同名时,由于参数变量和局部变量的优先级高,则在方法体中参数名或者局部变量名将隐藏同名的实例变量。使用this可以将其区分开来。 

      2、在构造方法中调用其它构造方法。在构造方法的第一条语句使用关键字this调用同一个类中的另一个构造方法。

格式:this(参数列表);   注意:由修饰符static修饰的静态变量不能使用this调用。

例如:

public class Person
{
	private String name;
	private char gender;
	private double height;
	public Person(String name, char gender)
	{
		this(name, gender, 1.65);
	}
	public Person(String name, char gender, double height)
	{
		this.name=name;
		this.gender=gender;
		this.height=height;
	}
}

 

关键字super:

      super指父类。应用与类的继承中。常用方法如下:

      1、访问父类构造方法。在子类的构造方法中,使用super可以调用其父类中的构造方法。一般用于子类构造方法的参数多余父类构造方法的参数时使用,简化构造方法的语句体。必须是构造方法中的第一条语句。

格式:super(参数列表);

      2、访问父类的变量和方法。当遇到子类中的实例变量或者实例方法与父类中的实例变量或者实例方法同名时,父类的会被子类隐藏。这个时候如果要使用父类中的某个实例变量或者实例方法,就需super关键字。

注意:super不能在static环境中使用。

 

类的继承:

      继承后产生的类称为子类或者派生类,子类继承父类的状态和行为,同时也可以修改父类的状态或者重载父类的行为,并添加新的状态和行为。在Java中,每一个类只可以有一个父类,一个类可以有多个子类。子类不能继承父类中访问权限为private的实例变量和实例方法。

 

类的多态:

      多态是指一个程序中同名的不同方法共存的情况。可以通过子类对父类方法的覆盖实现多态,也可以利用方法重载在同一个类中声明多个同名的不同方法。

      覆盖是在声明子类的方法时,使用与其父类中相同的名称和参数。在执行程序时,将执行子类的方法,而覆盖掉父类的方法。

 

Java面向对象程序设计》(第2版)课后答案 《Java面向对象程序设计》(第2版)课后答案全文共39页,当前为第1页。《Java面向对象程序设计》(第2版)课后答案全文共39页,当前为第1页。Java面向对象程序设计Java面向对象程序设计》(第2版)课后答案全文共39页,当前为第1页。 《Java面向对象程序设计》(第2版)课后答案全文共39页,当前为第1页。 (编著耿祥义X跃平) 习题1 1.James Gosling 2. (1)使用一个文本编辑器编写源文件。 (2)使用Java编译器(javac.exe)编译Java源程序,得到字节码文件。 (3)使用Java解释器(java.exe)运行Java程序 3.Java的源文件是由若干个书写形式互相独立的类组成的。 应用程序中可以没有public类,若有的话至多可以有一个public类。 4.系统环境path D\jdk\bin; 系统环境classpath D\jdk\jre\lib\rt.jar;.; 5. B 6. Java源文件的扩展名是.javaJava字节码的扩展名是.class。 7. D 8.(1)Speak.java (2)生成两个字节码文件,这些字节码文件的名字Speak.class 和 Xiti8.class (3)java Xiti8 (4)执行java Speak的错误提示 Exception in thread "main" java.lang.NoSuchMethodError: main 执行java xiti8得到的错误提示 Exception in thread "main" java.lang.NoClassDefFoundError: xiti8 (wrong name: Xiti8) 执行java Xiti8.class得到的错误提示 Exception in thread "main" java.lang.NoClassDefFoundError: Xiti8/class 执行java Xiti8得到的输出结果 I'm glad to meet you 9.属于操作题,解答略。 习题2 1. D 2.【代码1】【代码2】错误 //【代码3】更正为 float z=6.89F; 3.float型常量后面必须要有后缀"f"或"F"。 对于double常量,后面可以有后缀"d"或"D",但允许省略该后缀。 4.public class Xiti4{ public static void main (String args[ ]){ char ch1='你',ch2='我',ch3='他'; System.out.println("\""+ch1+"\"的位置:"+(int)ch1); System.out.println("\""+ch2+"\"的位置:"+(int)ch2); System.out.println("\""+ch3+"\"的位置:"+(int)ch3); } } 5.数组名字.length 6.数组名字.length 7.【代码1】A,65 【代码2】-127 《Java面向对象程序设计》(第2版)课后答案全文共39页,当前为第2页。《Java面向对象程序设计》(第2版)课后答案全文共39页,当前为第2页。【代码3】 123456.783,123456.78312 《Java面向对象程序设计》(第2版)课后答案全文共39页,当前为第2页。 《Java面向对象程序设计》(第2版)课后答案全文共39页,当前为第2页。 8. 【代码1】false 【代码2】true 【代码3】false 【代码4】3 【代码5】4.4 【代码6】8.8 习题3 输出110 if-else语句书写的不够规X,复合语句缺少大括号"{}",代码不够清晰。 2.你好好酷!! 3. public class Xiti3_3 { public static void main (String args[ ]){ int startPosition=0,endPosition=0; char cStart='а',cEnd='я'; startPosition=(int)cStart; //cStart做int型转换据运算,并将结果赋值给startPosition endPosition=(int)cEnd ; //cEnd做int型转换运算,并将结果赋值给endPosition System.out.println("俄文字母表:"); for(int i=startPosition;i<=endPosition;i++){ char c='\0'; c=(char)i; //i做char型转换运算,并将结果赋值给c System.out.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值