类与对象的基本概念理解与澄清

1.面向对象和面向过程的区别?

面向过程:

1.逻辑过程;

2.不适合解决复杂逻辑的需求;耦合度高,扩展力差;

面向对象:

扩展性强;

2.类是不存在的,是人的大脑高度抽象的结果,是共同特征的提取,是一个模板。

Student student = new Student();

类创造对象就是对象的实例化;?

对象又被称为实例。

所有的对象要创建必须基于类;对象是实际存在的个体;

类:状态和动作。

状态:属性

动作:方法

引用数据类型:class类(sun提供的System等)。自定义的Students类也是引用类型。

Student s; Student是数据类型(引用数据类型),s是引用;

基本数据类型:int等

3对象的创建和使用

1.实例变量就是对象变量;

2.访问成员变量必须先创建对象;

new是一个运算符,在jvm堆内存当中开辟新的内存空间;

方法区内存:在类加载的时候,class字节代码片段被加载到内存空间中;

栈内存(局部变量):在代码片段执行的时候,会给该方法分配内存空间,在栈内存中压栈。

堆内存():创建对象是在堆内存;

成员变量默认值要清楚,引用类型默认值是null

Student student = new Student();

//在堆内存中开辟的内存空间是对象;

//student是堆内存(对象)的地址,叫做引用

**对象:**new运算符在堆内存中开辟的内存空间;

访问堆内存中的数据必须使用引用去访问,java不能直接操作堆内存。

程序员只能通过引用访问堆内存中对象内部的实例变量;实例变量是一个对象一份。

实例变量在对象中,不能通过类名访问,只能先创建对象,再访问实例变量;

访问实例变量的格式:

读:引用.实例变量;

修改:引用.实例变量 = 值;


问:为什么对类的变量不在定义的时候初始化,而要放在构造器?

答:因为面向对象,可以使用构造器创建不同的对象实例。

问:new的作用是什么?

答:类是什么?模板,在空中,不接地气。对象变量创建之后相当于一个空箱子,但没有装任何东西,new操作符相当于将东西(类)用装进去。在堆内存中开辟了对象的空间。

问:Java中点操作符的作用?

调用类的属性或者对象的方法。

static关键字的作用是什么?

通常情况下,访问类的成员是通过方法的,使用static关键字后,不通过创建对象直接进行访问。static的变量实质上就是全局变量 。

注意:通过static声明的变量是被所用的实例变量共用,而没有产生相应的拷贝。对于非static变量的实例对象,通过对象去访问,实际上是产生对应实例变量的拷贝。

class Test{
    static int a;
    static int b;
    static void teststatic(){

    }
}

//声明static代码块
static{
   a = a+b;
}

//在类外面访问方法和变量
Test.a//访问a
Test.b//访问b
Test.teststatic()//访问方法

问:为什么main函数必须被声明为public static ?

声明为public是因为执行mian函数必须要依赖于java环境,如果不声明为public,则只能在package里面使用。static意味着main最先被执行。
问:多态是什么意思?
多态意味着父类对象变量可以引用子类对象。

public class AnimalTest{
	public static void main(String args[]){
	Animal test1 = new Animal(10,"mimi");
	Animal test2 = new Dog(10,"mimi","yellow");//这里就是多态的体现
	//test1 声明的类型是Animal,getColour()没有在Animal中定义
	//test1.getColour();
	System.out.println("test2信息如下:"+test2.getName()+" "+test2.getAge());
	}
}
class Animal{
 private int age;
 private String name;
 public Animal(int a, String n){
	 age = a;
	 name = n;
 }
	public String getName() {
		return name;
	}
		public int getAge() {
		return age;
	}
}

class Dog extends Animal{
	private String colour;
	public Dog(int a, String n, String c){
			super(a,n);
			colour = c;
 }
 	public String getColour() {
			return colour;
	}
}

问:final有哪些作用?
答:有四种作用:1.修饰类,该类不能被继承;2.修饰方法,该方法不能被重写;3.修饰变量,该变量只有一次赋值机会,相当于常量。4.修饰引用,意味着该引用只能被赋值一次。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值