第四章 这才是基础面向对象-上

第四章 面向对象-上

1. 面向对象思想编程内容的三条主线分别是什么?

1.类及类的的成员:属性、方法、构造器;代码块、内部类
2.面向对象的三大特征:封装、继承、多态
3.其它关键字:thissuperabstractinterfacestaticfinalpackageimport

2. 谈谈你对面向对象中类和对象的理解,并指出二者的关系?

类:抽象的、概念上的内容
对象:实实在在存在的一个个体
对象由类派生出来的

3. 面向对象思想的体现一:类和对象的创建和执行操作有哪三步?

1.创建类
2.类的实例化
3.调用对象的结构:对象.属性 、 对象.方法

4.画出如下代码在执行时的内存分配情况?

class Car{
       String color = "red";
       int num = 4;
       void show(){
			  int a = 10;
	          System.out.println("color="+color+",num="+num);
        }
  }
class CarTest {
	public static void main(String[] args) {
		Car c1 = new Car();   
		Car c2 = new Car(); 
		c1.color = "blue";  
		c1.show();   
		c2.show();
	}  
}

变量名在栈中;new的对象在堆中。

5.类的方法内是否可以定义变量?是否可以调用属性?是否可以定义方法?是否可以调用方法?

是;是;否;是

6. 什么是方法的重载?

两同一不同:同一类、相同方法名;参数列表不同。
如何调用确定的方法:方法名--->参数列表

7.说明Java方法中的参数传递机制的具体体现?

基本数据类型:数据值
引用数据类型:地址值(含变量数据类型)
  
Person p1 = new Person();
Use u1 = p1;//编译错误,类型不一致。

8.谈谈return关键字的内存解析

1.结束方法
2.针对于有返回值的方法 return + 返回的数据

9. 提供如下代码的内存解析

public class TransferTest3{
    public static void main(String args[]){
        TransferTest3 test = new TransferTest3();
        }
     public void first(){
         int i = 5;
         Value v = new Value();
         v.i = 25;
         second(v,i);
         System.out.peintln(v,i);
     }
     public void second(Value v, int i){
            i = 0;
            v.i = 20;
            Value val = new Value();
            v = val;
             System.out.peintln(v.i+" "+i);
        }
}
class Value{
    int i = 15;
}
1.内容结构:栈(局部变量)、堆(new 出来的结构:对象(非static成员变量)、数组)
2.变量:成员变量 vs 局部变量(方法内、方法形参、构造器内、构造器形参、代码块内)

10.构造器的作用是什么?使用中有哪些点?

1.创建对象
2.初始化对象的信息
    
1.如果没显式的定义类的构造器的话,则系统默认提供一个空参的构造器
2.定义构造器的格式:权限修饰符  类名(形参列表){}
3.一个类中定义的多个构造器,彼此构成重载
4.一旦我们显式的定义了类的构造器之后,系统就不再提供默认的空参构造器

11.关于类的属性的赋值,有几种赋值的方式。谈谈先后顺序。

默认初始化-显式初始化-构造器中初始化-对象.方法 或者 对象.属性 给属性赋值

12. this关键字可以用来调用哪些结构,简单说明一下其使用。

属性、方法、构造器
this:理解为当前对象,当前正在创建的对象

13. Java中目前学习涉及到的四种权限修饰符都有什么?并说明各自的权限范围。

private int age;
private void eat(){}
修饰符 类内部 同一个包 不同包的子类 同一工程
private yes
(缺省) yes yes
protected yes yes yes
public yes yes yes yes

14. 创建Circle类,提供私有的radius属性,提供相应的get和set方法,提供求圆面积的方法。

public class Circle{
    private double radius;
    
    public double getRadius(){
        return radius;
    }
    public void setRadius(double radius){
        this.radius = radius;
    }
    public double findArea(){
        return 3.14 * radius * radius;
    }
}
原创文章 11 获赞 8 访问量 5579

猜你喜欢

转载自blog.csdn.net/weixin_43292923/article/details/106092701