您的位置:首页 > 编程语言 > Java开发

不二极端编程之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;
}
}


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息