发表于: 2018-02-22 20:26:41

1 576


今日完成

1.对象中的一些知识点温习

类:事物的描述

对象:该类的实例,java中通过new创建

内存:new 对象时,在内存中开辟空间,默认值(基本类型0,字符串null,每个对象封装字节的成员变量。

 

成员变量:存在与堆内存的对象中。有默认值初始化值。随着对象的存在而存在,随着对象的消失(回收)而消失。

局部变量:存在与栈内存的方法中。没有默认初始化值,随着所属区域的执行而存在,随和所属区域的结束而释放。

 

基本数据类型的参数传递:值的拷贝,

引用数据类型的参数传递:引用的拷贝,都是值的传递。

public class demo1{
public static void main(String[] args) {
//引用类型传递的是引用,基本类型传递的是值的拷贝;
     Car c1 = new Car();
     
     c1.color = "blue";
//    show(c1);
//    System.out.println(c1);
     String x  = "原始值";
     String y = new String("yyyyyy");
     
     show2(x);
     show2(y);
     System.out.println(x);
     System.out.println(y);
     
  }
public static void show(Car x ) {
x.color = "reddd";
  }
public static void show2(String a) {
String aaa = new String("改变值");
     a = aaa;
  }
}
class Car{
private Integer num;
   String color;
   
   public void run() {
System.out.println();
   }

2.静态的使用与代码块

Static:

1.随着类的加载而存在,先于对象的存在。

2.区别

1)生命周期不同,一个随着对象存在,一个随着类存在。

2)调用方式不同。一个通过对象调用,一个通过类名调用。

3)储存的方式不一样。

成员变量储存在堆内存的对象中,也叫做对象的特有数据。

静态变量储存在方法区(的静态区),所以也叫对象的共享数据区。

3.用法注意

1)静态方法只能访问静态变量。

2)静态方法中不能使用thissuper.

4.静态代码块

随着类的加载而运行,而且只执行一次。

作用:用于给类进行初始化。

5.构造代码块

构造类的时候运行,先于构造函数执行。局部代码块(放在函数里面)

静态代码块最先执行。

 

public class demo3 {

public demo3(){
System.out.println("gouzao");
   }

{
System.out.println( "hahaha");
   }
static
   {
System.out.println( "hehehe");
   }

private void test(){
{
System.out.println("jubu");
       }
System.out.println("test");
       
   }

public static void main(String[] args) {

demo3 s = new demo3();
       demo3 s2 = new demo3();
       s.test();
   }
}

结果

3.继承

单继承:一个子类只能有一个父类。

变化:

1.成员变量

1)当本类的成员与局部变量同名用this区分,当子父类成员变量同名的时候用super区分。

This:代表一个本类对象的引用,super代表一个父类空间。

2)子类中不能直接使用父类中的私有内容。

2.成员方法

当子父类出现同样的方法,会运行子类函数。这种称为覆盖操作,也叫重写。

3.构造函数

构造函数中有隐式的super();

子类的实例化过程:子类中所有的构造函数默认都会访问父类中的空参构造函数。

如果父类中没有定义无参的构造函数,你怎么子类的构造函数中必须使用super表明使用哪个构造函数,当出现this的时候,super就没有了

Super  this 只能定义在第一行,所以只能有一个。

public class Fu {
Fu(){
this(4);
       
       System.out.println("fufu");
   }
Fu(int a){
System.out.println("fuffu"+a);
   }
private int num = 5;
   public void show(){
System.out.println("fufufuf");
   }
}
class Zi extends Fu{


Zi() {
System.out.println("zizzi");
   }
Zi(int a){
super();
       
       System.out.println("zizi"+a);
   }

public void show(){
System.out.println("ziziz");
   }

public static void main(String[] args) {
new Zi();
       new Zi(4);
   }
}

明日计划

1.代码生产的demo完成,开始熟悉项目,写项目方案。

遇到问题

1.暂无

收获

1.基础知识的加强



返回列表 返回列表
评论

    分享到