数量上的区别:
(n份)非静态成员变量是在每个对象中都维护一份数据
(1份)静态成员变量只会在方法中维护一份数据。
访问方式上的区别:
非静态的成员变量只能使用对象进行访问.
静态成员变量可以使用对象、类名进行访问。
存储位置上的区别;
非静态成员变量是存储在堆内存中。
静态成员变量是存储在方法区中。
生命周期的区别:
非静态成员变量是随着对象的创建而存在,随着对象的消失而消失。
静态成员变量是随着类文件的加载而存在,随着类文件(字节码文件)的消失而消失。
作用上的区别:
非静态成员变量的作用是用于描述一类事物的属性。
静态成员变量的作用是提供一个共享数据给所有对象使用的。
/*
第5、6题答案如下
*/
abstract class People{
private String name;
private String sex;
private int age;
public People(){};
public People(String name,String sex,int age){
this.name=name;
this.sex=sex;
this.age=age;
}
public String getName(){
return name;
}
public void setName(String name){
this.name=name;
}
public String getSex(){
return sex;
}
public void setSex(String sex){
if(sex.equals("男")||sex.equals("女")){
this.sex=sex;
}else{
sex="女";
}
}
public int getAge(){
return age;
}
public void setAge(int age){
if(age>=1&&age<=120){
this.age=age;
}else{
age=0;
}
}
public abstract void run();
}
class Person extends People{
public Person(){};
public Person(String name,String sex,int age){
super(name,sex,age);
}
public void run(){
System.out.println("Person run");
}
}
class Test{
public static void main(String[] args){
//第五题
Person p=new Person();
p.setName("zhang san");
p.setSex("男");
p.setAge(20);
System.out.println("name:"+p.getName()+",sex: "+p.getSex()+",age:"+p.getAge());
//第六题
Person p2=new Person("li si","男",18);
System.out.println("name:"+p2.getName()+",sex: "+p2.getSex()+",age:"+p2.getAge());
}
}
代码:
import java.util.Scanner;
class Test{
public static void main(String[] args){
System.out.println("请输入一个整数");
Scanner scanner=new Scanner(System.in);
int num=scanner.nextInt();
int count=0;
for(int i=1;i<=num;i+=2){
count++;
}
System.out.println("0到"+num+"之间共有"+count+"个奇数");
}
}
class NoMoneyException extends Exception {
public NoMoneyException(String message) {
super(message);
// TODO Auto-generated constructor stub
}
}
class Test {
public static void main(String[] args) {
try {
byBus(5);
} catch (NoMoneyException e) {
e.printStackTrace();
System.out.println("回家拿钱");
}
}
public static void byBus(int money) throws NoMoneyException {
if (money < 2) {
throw new NoMoneyException("没有带够钱");
} else {
System.out.println("可以坐车");
}
}
}
9. 简单描述单例模式解决的问题,并写出例子实现单例模式(只需要写出其中的一种即可)。(10分 )
单列模式解决一类问题的固定步骤
class Single{
Single s=new Single();
private Single(){}
public Single single(){
return s;
}
}
使用java类描述 某某公司的门的实现过程,该公司的门具备普通门的所用属性与openDoor()和关门closeDoor()的功能。然后该公司对门进行另外的功能设计,防盗--theftproof()、防水--waterproof()、防弹--bulletproof() 要求利用继承、抽象类、接口的知识设计该门.
备注:附件题目不算入总分的,用于提升解决问题的能力的。
===========
1. JRE、JDK是什么
2. 配置path、JAVA_HOME、classpath的作用。
3. 配置classpath的时候加上分号与不加分号的区别?
1. 关键字、标识符 、注释的类型。
2. 变量的基本数据类型有那些?数据类型转换?
1. if 判断语句
2. while循环语句
3. switch语句
4. for循环语句。
5. continue、break关键字。
1. 函数的作用,函数的定义格式、函数的重载。
2. 数组、 直接排序、冒泡排序、折半查找法、
1. 定一个函数接收一个数组与一个要查找的目标元素,
3. 定义一个函数接受一个数组 ,对数组进行排序。
2. 现在有如下的一个数组:int oldArr[]={1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5} ,要求清除数组中为0的元素,然后存储非零的数据存储到一个新数组中。
1. 对象与类的概念。
2. 构造方法的基本概念、构造代码块的。构造函数与构造代码块的区别。
3. this关键字、this关键字 的作用?
1. 使用java类描述一个学生类,学生具备id、name、age三个属性、还有行走的方法。要求一旦创建学生对象,学生对象就具备了属性值。
2. 使用java类描述一个学生类,学生具备id、name、age三个属性、还有行走的方法,走的方法中也有一个局部变量name,怎样才可以指定访问到成员变量的name呢?学生还具备一个比较年龄的方法。