zoukankan      html  css  js  c++  java
  • java学习笔记(5)

    java基础知识1:代 (1)用{}括起来的代码 (2)分类:

    1:代码块
      (1)用{}括起来的代码。
      (2)分类:
        A:局部代码块
          用于限定变量的生命周期,及早释放,提高内存利用率。
        B:构造代码块
          把多个构造方法中相同的代码可以放到这里,每个构造方法执行前,首先执行构造代码块。
        C:静态代码块
          对类的数据进行初始化,仅仅只执行一次。
      (3)静态代码块,构造代码块,构造方法的顺序问题?
        静态代码块 > 构造代码块 > 构造方法

    2:继承
      (1)把多个类中相同的成员给提取出来定义到一个独立的类中。然后让这多个类和该独立的类产生一个关系,
        这多个类就具备了这些内容。这个关系叫继承。
      (2)Java中如何表示继承呢?格式是什么呢?
        A:用关键字extends表示
        B:格式:
          class 子类名 extends 父类名 {}
      (3)继承的好处:
        A:提高了代码的复用性
        B:提高了代码的维护性
        C:让类与类产生了一个关系,是多态的前提
      (4)继承的弊端:
        A:让类的耦合性增强。这样某个类的改变,就会影响其他和该类相关的类。
          原则:低耦合,高内聚。
          耦合:类与类的关系
          内聚:自己完成某件事情的能力
        B:打破了封装性
      (5)Java中继承的特点
        A:Java中类只支持单继承
        B:Java中可以多层(重)继承(继承体系)
      (6)继承的注意事项:
        A:子类不能继承父类的私有成员
        B:子类不能继承父类的构造方法,但是可以通过super去访问
        C:不要为了部分功能而去继承
      (7)什么时候使用继承呢?
        A:继承体现的是:is a的关系。
        B:采用假设法
      (8)Java继承中的成员关系
        A:成员变量
        a:子类的成员变量名称和父类中的成员变量名称不一样,这个太简单
        b:子类的成员变量名称和父类中的成员变量名称一样,这个怎么访问呢?
          子类的方法访问变量的查找顺序:
          在子类方法的局部范围找,有就使用。
          在子类的成员范围找,有就使用。
          在父类的成员范围找,有就使用。
          找不到,就报错。
        B:构造方法
          a:子类的构造方法默认会去访问父类的无参构造方法
            是为了子类访问父类数据的初始化
          b:父类中如果没有无参构造方法,怎么办?
            子类通过super去明确调用带参构造
            子类通过this调用本身的其他构造,但是一定会有一个去访问了父类的构造
            让父类提供无参构造
        C:成员方法
          a:子类的成员方法和父类中的成员方法名称不一样,这个太简单
          b:子类的成员方法和父类中的成员方法名称一样,这个怎么访问呢?
            通过子类对象访问一个方法的查找顺序:
            在子类中找,有就使用
            在父类中找,有就使用
            找不到,就报错

    3:两个面试题:
      A:Override和Overload的区别?Overload是否可以改变返回值类型?

       方法重写:在子类中,出现和父类一模一样的方法声明的现象。

       方法重载:同一个类中,出现的方法名相同,参数列表不同的现象。

      B:this和super的区别和各自的作用?    

        this:代表当前类的对象引用
        super:代表父类存储空间的标识。

      

    java小程序:猜数字

    import java.util.Scanner;
    
    class GuessNumber {
    	public static void main(String[] args) {
    		//程序产生一个随机数。(被猜的)
    		int number = (int)(Math.random()*100)+1;
    		//System.out.println(number);
    		
    		//给出多次猜的机会,猜中就结束。
    		while(true) {
    			//键盘录入数据。(你猜的)
    			Scanner sc = new Scanner(System.in);
    			System.out.println("请输入你要猜的数据(1-100):");
    			int guessNumber = sc.nextInt();
    			
    			//把你猜的和被猜的进行比较
    			if(guessNumber > number) {
    				System.out.println("你猜的数据"+guessNumber+"大了");
    			}else if(guessNumber < number) {
    				System.out.println("你猜的数据"+guessNumber+"小了");
    			}else {
    				System.out.println("恭喜你,猜中了");
    				break;
    			}
    		}
    	}
    }
    

      

  • 相关阅读:
    HDU5418.Victor and World(状压DP)
    POJ2686 Traveling by Stagecoach(状压DP)
    POJ3254Corn Fields(状压DP)
    HDU5407.CRB and Candies(数论)
    CodeForces 352D. Jeff and Furik
    CodeForces 352C. Jeff and Rounding(贪心)
    LightOj 1282 Leading and Trailing
    Ural 1057. Amount of Degrees(数位DP)
    HDU 2089 不要62 (数位DP)
    HDU5366 The mook jong (DP)
  • 原文地址:https://www.cnblogs.com/aixzhi/p/7368256.html
Copyright © 2011-2022 走看看