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

    java基础知识

    1:二维数组
    	(1)元素是一维数组的数组。
    	(2)格式:
    		A:数据类型[][] 数组名 = new 数据类型[m][n];
    		B:数据类型[][] 数组名 = new 数据类型[m][];
    		C:数据类型[][] 数组名 = new 数据类型[][]{{...},{...},{...}};
    		D:数据类型[][] 数组名 = {{...},{...},{...}};
    2:参数传递
            (1)Java中的参数传递问题
    		Java中只有值传递。
    		
    		基本类型:形式参数的改变不影响实际参数
    		引用类型:形式参数的改变直接影响实际参数
    3:类的定义及使用
    		A:类的定义
    			成员变量	定义格式和以前一样,就是位置不同,在类中,方法外。
    			成员方法	定义格式和以前一样,就是去掉了static。
    		B:使用类的内容
    			a:创建对象? 格式
    				类名 对象名 =  new 类名();
    			b:如何使用成员变量和成员方法呢
    				对象名.成员变量
    				对象名.成员方法()

     

     1 3  成员变量和局部变量的区别(理解)
     2     (1)在类中的位置不同
     3         成员变量:类中方法外
     4         局部变量:方法定义中或者方法声明上
     5     (2)在内存中的位置不同
     6         成员变量:在堆中
     7         局部变量:在栈中
     8     (3)生命周期不同
     9         成员变量:随着对象的创建而存在,随着对象的消失而消失
    10         局部变量:随着方法的调用而存在,随着方法的调用完毕而消失
    11     (4)初始化值不同
    12         成员变量:有默认值
    13         局部变量:没有默认值,必须定义,赋值,然后才能使用
    14 
    15 4 匿名对象
    16     (1)没有名字的对象
    17     (2)应用场景
    18         A:调用方法,仅仅只调用一次的时候。
    19         b:可以作为实际参数传递 
    20 5:封装(理解)
    21     (1)隐藏实现细节,提供公共的访问方式
    22     (2)好处:
    23         A:隐藏实现细节,提供公共的访问方式
    24         B:提高代码的复用性
    25         C:提高代码的安全性
    26     (3)设计原则
    27         把不想让外界知道的实现细节给隐藏起来,提供公共的访问方式
    28     (4)private是封装的一种体现。
    29         封装:类,方法,private修饰成员变量
    30 
    31 6:private关键字(掌握)
    32     (1)私有的意义,可以修饰成员变量和成员方法
    33     (2)特点:
    34         被private修饰的后的成员只能在本类中被访问
    35     (3)private的应用:
    36         以后再写一个类的时候:
    37             把所有的成员变量给private了
    38             提供对应的getXxx()/setXxx()方法
    39 
    40 7:this关键字(掌握)
    41     (1)代表当前类的引用对象
    42         记住:哪个对象调用方法,该方法内部的this就代表那个对象
    43     (2)this的应用场景:
    44         A:解决了局部变量隐藏成员变量的问题
    45         B:其实this还有其他的应用,明天讲解。
    46 
    47 8:构造方法(掌握)
    48     (1)作用:用于对对象的数据进行初始化
    49     (2)格式:
    50         A:方法名和类名相同
    51         B:没有返回值类型,连void都不能有
    52         C:没有返回值
    53         
    54         思考题:构造方法中可不可以有return语句呢?
    55         可以。而是我们写成这个样子就OK了:return;
    56         其实,在任何的void类型的方法的最后你都可以写上:return;
    57     (3)构造方法的注意事项
    58         A:如果我们没写构造方法,系统将提供一个默认的无参构造方法
    59         B:如果我们给出了构造方法,系统将不再提供默认构造方法
    60             如果这个时候,我们要使用无参构造方法,就必须自己给出。
    61             推荐:永远手动自己给出无参构造方法。
    62     (4)给成员变量赋值的方式
    63         A:setXxx()
    64         B:带参构造方法
    65 910:static关键字(理解)
    66     (1)静态的意思。可以修饰成员变量和成员方法。
    67     (2)静态的特点:
    68         A:随着类的加载而加载
    69         B:优先与对象存在
    70         C:被类的所有对象共享
    71             这其实也是我们判断该不该使用静态的依据。
    72             举例:饮水机和水杯的问题思考
    73         D:可以通过类名调用
    74             既可以通过对象名调用,也可以通过类名调用,建议通过类名调用。
    75     (3)静态的内存图
    76         静态的内容在方法区的静态区
    77     (4)静态的注意事项;
    78         A:在静态方法中没有this对象
    79         B:静态只能访问静态(代码测试过)
    80     (5)静态变量和成员变量的区别
    81         A:所属不同
    82             静态变量:属于类,类变量
    83             成员变量:属于对象,对象变量,实例变量
    84         B:内存位置不同
    85             静态变量:方法区的静态区
    86             成员变量:堆内存
    87         C:生命周期不同
    88             静态变量:静态变量是随着类的加载而加载,随着类的消失而消失
    89             成员变量:成员变量是随着对象的创建而存在,随着对象的消失而消失
    90         D:调用不同
    91             静态变量:可以通过对象名调用,也可以通过类名调用
    92             成员变量:只能通过对象名调用
    93     (6)main方法是静态的
    94         public:权限最大
    95         static:不用创建对象调用
    96         void:返回值给jvm没有意义
    97         main:就是一个常见的名称。
    98         String[] args:可以接收数据,提供程序的灵活性

    java 编程练习

    题目:输入某年某月某日,判断这一天是这一年的第几天?

    程序分析:以3月5日为例,应该先把前两个月的加起来,然后再加上5天即本年的第几天,特殊情况,闰年且输入月份大于3时需考虑多加一天

      

     1 import java.util.Scanner;
     2 public class Progtest{
     3     public static void main(String[] args){
     4         Scanner scan = new Scanner(System.in).useDelimiter("\D");
     5         System.out.print("请输入当前日期(年-月-日):");
     6         int year = scan.nextInt();
     7         int month = scan.nextInt();
     8         int date = scan.nextInt();
     9         scan.close();
    10         System.out.println("今天是"+year+"年的第"+analysis(year,month,date)+"");
    11     }
    12     //判断天数
    13     private static int analysis(int year, int month, int date){
    14         int n = 0;
    15         int[] month_date = new int[] {0,31,28,31,30,31,30,31,31,30,31,30};
    16         if((year%400)==0 || ((year%4)==0)&&((year%100)!=0))
    17           month_date[2] = 29;
    18         for(int i=0;i<month;i++)
    19           n += month_date[i];
    20         return n+date;
    21     }
    22 }
  • 相关阅读:
    LeetCode 515. 在每个树行中找最大值(Find Largest Value in Each Tree Row)
    LeetCode 114. 二叉树展开为链表(Flatten Binary Tree to Linked List)
    LeetCode 199. 二叉树的右视图(Binary Tree Right Side View)
    LeetCode 1022. 从根到叶的二进制数之和(Sum of Root To Leaf Binary Numbers)
    LeetCode 897. 递增顺序查找树(Increasing Order Search Tree)
    LeetCode 617. 合并二叉树(Merge Two Binary Trees)
    LeetCode 206. 反转链表(Reverse Linked List) 16
    LeetCode 104. 二叉树的最大深度(Maximum Depth of Binary Tree)
    LeetCode 110. 平衡二叉树(Balanced Binary Tree) 15
    LeetCode 108. 将有序数组转换为二叉搜索树(Convert Sorted Array to Binary Search Tree) 14
  • 原文地址:https://www.cnblogs.com/aixzhi/p/7354125.html
Copyright © 2011-2022 走看看