热门课程

免费试听

上课方式

开班时间

当前位置: 首页 -   文章 -   新闻动态 -   正文

重走Java基础-面向对象以及常见问题一

知了堂姐
2024-07-08 17:22:16
0

  1、类与对象?

  类可以被认为是一种自定义数据类型,可以使用类来定义变量。所有使用类定义的变量都是引用变量,它们都将会引用到类的对象。类是用于描述客观世界里某一类对象的共同特征,而对象则是类的具体存在。

  2、为什么static修饰的成员不能直接访问没有static修饰的成员?

  3、对象内存模型以及类的各个成员的内存分配

package cn.itcast.demo02;
public class Car {
	String color;
	int count ;
	public void run(){
		
		int x=1;
		/*for(int i = 0 ;  i < 4 ;i++){
			
		}*/
		System.out.println("小汽车在跑 ..."+color+"..."+count);
		System.out.println(x);
	}
}


package cn.itcast.demo02;
/*
 *  成员变量和局部变量的区别
 *  
 *  1. 定义位置上的区别
 *    成员变量,定义在类中,方法外
 *    局部变量,方法内,语句内
 *    
 *  2. 作用域不同
 *    成员变量,作用范围是整个类
 *    局部变量,方法内,语句内
 *    
 *  3. 默认值不同
 *     成员变量,有自己的默认值
 *     局部变量,没有默认值,不赋值不能使用
 *     
 *  4. 内存位置不同
 *     成员变量,跟随对象进入堆内存存储
 *     局部变量,跟随自己的方法,进入栈内存
 *     
 *  5. 生命周期不同
 *     成员变量,跟随对象,在堆中存储,内存等待JVM清理 , 生命相对较长
 *     局部变量,跟随方法,方法出栈    生命相对较短
 */
public class CarTest {
	public static void main(String[] args) {
		Car c = new Car();
		c.run();
	}
}
重走Java基础:面向对象以及常见问题(一) 


  4、类中的常见成员:构造器、方法、成员变量的内存分配?

  5、成员变量没有赋值,但系统会给它默认赋值

  6、局部变量和成员变量的区别?

  定义的位置不同定义的位置不同

  成员变量定义在类中方法体外;局部变量定义在方法体内。他们和他们的数据类型无关

  作用域不同

  成员变量在整个类中,局部变量只作用在方法体内

  默认值不同

  成员变量拥有默认值,可以不用直接赋值。而局部变量必须显示赋值,不赋值不能使用,必须初始化。

  内存位置不同

  成员变量存储在堆中,局部变量存储在栈中。成员变量跟随对象进入堆中,局部变量跟随方法入栈,存储在栈中。

  生命周期不同

  成员变量跟随对象在堆中存储,堆中内存等待JVM清理才能结束;局部变量跟随方法,只要方法出栈,局部变量的生命结束。因此成员变量比局部变量活的更久。

  7、方法中的参数数据类型?基本数据类型和引用类型传参的区别?方法的参数的传递机制是什么?值传递!

重走Java基础:面向对象以及常见问题(一)

  8、封装的特征?什么是封装?封装的好处?关键词哪些?

  方法本身就是一个封装,类也是一个封装。它们对外部是隐藏了实现细节。

  封装的好处:提高了代码的复用性;隐藏了实现细节,还要对外提供了公共的访问方式。这是核心之一,也可以理解为就是封装的概念。此外提高了安全性。

  private关键字

  private属于成员修饰符,不能修饰局部变量。被private修饰的成员,只能在自己本类中使用。对于私有变量。提供公共的访问方式:方法(setXXX和getXXX)。通过setXXX方法可以对private修饰的成员进行限制,使得外部的访问必须通过setXXX方法对该变量进行操作,并且可以在setXXX方法内部对外部操作该变量进行限制,使得外部的操作必须满足该方法的要求才能操作成功。

  一般对于成员属性的访问动作:赋值(setXXX),取值(getXXX),因此对私有的变量的访问方式可以提供对应的setXXX或getXxx方法;

  总结:类中不需要对外提供的内容私有化,包括属性和方法;以后再描述事物,属性都私有化,并提供setXxx和getXxx方法对其进行访问;注意: 私有仅仅是封装的体现形式而已。 凡是自定义的类、自定义成员变量,应该私有化,提供set/get。

  

       版权声明:本文来源于网络,由知了堂搜集整理,想要系统学习java,可以点击知了堂Java在线视频观看。

大家都在看

前端学习要学什么?前端要掌握哪些技术?

2024-07-08 浏览次数:0

java编程需要什么软件?敲代码之前的准备

2024-07-08 浏览次数:0

哪的java培训班好,知了堂怎么样?

2024-07-08 浏览次数:0

Java开发岗,应届生如何一举拿下3份月薪过万的...

2024-07-08 浏览次数:0

Dubbo 支持哪些协议,有哪些负载均衡策略

2024-07-08 浏览次数:0

网络安全自学还是培训?关于网络安全的那些事儿

2024-07-08 浏览次数:0
最新资讯