不二极端编程之JAVA基础总结(1)
2017-11-14 09:39
288 查看
一、局部变量和成员变量的区别
1.在类中的位置不同局部变量:在方法定义中或者方法声明中
成员变量:在类中方法外
2.在内存中的位置不同
局部变量:在栈内存
成员变量:在堆内存
3.生命周期不同
局部变量:随着方法的调用而存在,随着方法的调用完毕而消失
成员变量:随着对象的创建而存在,随着对象的消失而消失
4.初始化值不同
局部变量:没有默认值初始化,必须定义赋值,然后才能使用
成员变量:有默认值初始化
注:局部变量名称可以和成员变量名称一样,在方法中使用的时候,采用的是就近原则
二、匿名对象是什么?应用场景是什么?
匿名对象:就是没有名字的对象,由于没有指向,所以效率较高一些
应用场景:
A:调用方法,但是仅仅只限调用一次而已
B:匿名对象用作实际参数传递
三、封装是什么?JAVA中封装的体现有哪些?请举例说明
在面向对象程序设计方法中,封装是指一种将抽象性函数式接口的实线细节部分包装、隐藏起来的方法,封装可以被认为是一个保护屏障,防止该类的代码和数据被外部类定义的代码随机访问。要访问该类的代码和数据,必须通过严格的接口控制。
封装最主要的功能在于我们能修改自己的实现代码,而不用修改那些调用我们代码的程序片段。
适当的封装可以让程式码更容易理解与维护,也加强了程式码的安全性。
封装的优点:
1、良好的封装能够减少耦合
2、类内部的结构可以自由修改
3、可以对成员变量进行更精确的控制
4、隐藏信息,实现细节
实现JAVA封装的步骤:
1、修改属性的可见性来限制对属性的访问(一般限制为private)
public class person{ private String name; private int age; }
这段代码中,将name和age属性设置为私有的,只有本类才能访问,其他类都访问不了,如此就对信息进行了隐藏
2、对每个值属性提供对外的公开方法访问,也就是创建一对赋取值方法,用于对私有属性的访问
采用this关键字是为了解决实例变量和局部变量之间发生同名的冲突
public class person{ private String name; private int age; public int getAge(){ return age; } public String getName(){ return name; } public void setAge(int age){ this.age = age; } public void setName(String name){ this.name = name; } }
以上实例中public方法是外部类访问该类成员变量的入口
通常情况下,这些方法被称为getter和setter方法
因此,任何要访问类中私有成员变量的类都要通过这些getter和setter方法
四、this的关键字是什么?This的应用场景是什么?
每一个行为发生的时候,肯定会有一个发生这个行为的主体在编程语言里面每一个定义的方法里,都会有一个this关键字,这个this关键不是由在哪儿定义来决定的,而是由谁来执行来决定的,这是判断this的关键
This关键字主要有三个应用:
1、this调用本类中的属性,也就是类中的成员变量
2、this调用本类中的其他方法
3、this调用本类中的其他构造方法,调用时要放在构造方法的首行
五、私有化一个类的成员变量,用getter和setter方法进行读写
public static void main(String[] args) { // TODO Auto-generated method stub p phone = new p(); phone.setBrand("vivo"); phone.setPrice(1000); System.out.println(phone.getBrand()); System.out.println(phone.getPrice()); } } class p{ private String brand; private int price; public String getBrand() { return brand; } public int getPrice() { return price; } public void setBrand(String newBrand) { brand = newBrand; } public void setPrice(int newPrice) { price = newPrice; } }
六、打印员工信息(EMP类)
构建程序,实现员工的信息打印public static void main(String[] args) { // TODO Auto-generated method stub System.out.println("----------------------------------------------"); EMP EMP1 = new EMP(); EMP1.name = "白发魔女"; EMP1.age = 24; EMP1.gender = "女"; EMP1.money = 6000; System.out.println("姓名:" + EMP1.name); System.out.println("年龄:" + EMP1.age); System.out.println("性别:" + EMP1.gender); System.out.println("薪水:" + EMP1.money + ".0"); System.out.println("----------------------------------------------"); EMP EMP2 = new EMP(); EMP2.name = "黑马神子"; EMP2.age = 26; EMP2.gender = "男"; EMP2.money = 7500; System.out.println("姓名:" + EMP2.name); System.out.println("年龄:" + EMP2.age); System.out.println("性别:" + EMP2.gender); System.out.println("薪水:" + EMP2.money + ".0"); } } class EMP{ String name ; int age ; String gender ; int money ; }
效果图如下:
七、为cell类添加右移的方法
public static void main(String[] args) { // TODO Auto-generated method stub cell cell = new cell(); cell.row = 15; cell.col = 3; cell.move(); form(cell); cell.moveMore(4); form(cell); } public static void form(cell cell) { for (int i = 0; i < 20; i++) { for (int j = 0; j < 10; j++) { if (cell.row == i && cell.col == j) { System.out.print("*"); }else { System.out.print("-"); } }System.out.println(); } } } class cell{ int row; int col; public void move() { col ++; } public void moveMore(int i) { col = col + i; } }
相关文章推荐
- 不二极端编程之JAVA基础总结(2)
- 不二极端编程之JAVA基础总结(3)[数组循环实现控制台注册登录全功能]
- 不二极端编程之Java基础工程详解
- 黑马程序员_Java编程学习日记01(开博之言、java编程基础知识总结)
- 黑马程序员 java基础24天 GUI编程学习总结
- 黑马程序员——Java学习总结:Java编程基础
- Java 编程基础 类和继承总结
- Java多线程编程总结笔记——一多线程基础知识
- Java基础学习总结(18)——网络编程
- java基础学习总结——GUI编程(二)
- Java并发编程基础构建模块(06)——高效缓存总结示例
- java基础学习总结——GUI编程(二)
- 总结: Java与C的不同点-Java基础-Java-编程开发
- Java基础学习总结(18)——网络编程
- 黑马程序员_Java基础:网络编程总结
- 黑马程序员--Java基础总结---网络编程
- 黑马程序员:Java基础总结----网络编程
- 黑马程序员:Java基础总结----网络编程
- 黑马程序员_Java基础:网络编程总结