java学习日志(3)递归、面向对象的思想、API、Scanner、类及方法、栈、堆
来源:互联网 发布:photoshop2017 mac 编辑:程序博客网 时间:2024/05/21 04:41
递归,简单的说就是自己调用自己。以算阶乘为例:
package cn.bjsxt.test;
/**
* 测试递归算法,并算了个阶乘
* @author xiaofeng
* @version 1.0
*/
//测试递归
public class TestRecursion {
/**
* 计算阶乘,阶乘是5!
* @param m 阶乘的最大数
* @return 阶乘的结果
*/
public static long Jiec(int m){
if(m==1){
return 1;
}else{
return m*Jiec(m-1);
}
}
public static void main(String[] args){
long result = Jiec(5);
System.out.println(result);
}
}
这里也包含了封装?包的内容。/**
关于Scanner,用户输入:
import java.util.Scanner;//Scanner在另外的库里,需要声明
public class TestScanner {
public static void test01(){
Scanner s = new Scanner(System.in);
int a = s.nextInt();
int b = s.nextInt();
int sum = a + b;
System.out.println(sum);
}
public static void main(String[] args){
test01();
}
}
包(package)是用来管理类(class)的,java.lang包含一些核心的类,如String Math Integer System Thread, 可以直接引用。另外java.awt jaca.net java.io java.util也是常用的包。
API:Application Programming Interface 应用程序编程接口。
面向对象的思想:以类的方式组织代码,以对象的方式组织(封装)数据。
内存分析:
栈:自动分配连续的空间,后进后出
堆:不连续,放置new出的对象。方法区:包含在堆里面,存放类的信息(代码),static变量、常量池。
代码:
package cn.bjsxt.oop;
public class Student {
//静态的数据
String name;
int id; //学号
int age;
String gender;
int weight;
//动态的行为
public void study(){
System.out.println(name+"在学习");
}
public void sayhello(String sname){
System.out.println(name+"向"+sname+"说你好");
}
public static void main(String[] args){
Student s1 = new Student();//s1创建的时候,存在默认值除了8种数字类型,都是null,数字类型默认为0。局部变量则没有默认值
//通过类加载器Class Loader加载Student类。加载后在方法区中就有了Student类的信息。这里加载的是.class文件
s1.name = "mm";
s1.study();
s1.sayhello("ning");
Student s2 = new Student();
s2.name = "zxf";
}
}
参见16.8.1P2class31笔记。
- java学习日志(3)递归、面向对象的思想、API、Scanner、类及方法、栈、堆
- 【学习java编程思想】day_1面向对象程序设计的方法
- java学习之路 之 面向对象编程-面向对象与面向过程及面向对象的思想概念
- Java的面向对象思想及特征
- java面向对象思想学习
- java面向对象思想学习
- Java的面向对象思想
- Java面向对象的思想
- java面向对象的思想
- JAVA面向对象的思想
- Java面向对象的思想
- java的面向对象思想
- java的面向对象思想
- JAVA面向对象的思想
- JAVA面向对象的思想
- Java面向对象的思想
- Java编程思想:面向对象的逻辑思维方法
- JAVA学习--面向对象思想的落地法则
- 手势类Gesture大汇总
- 文章标题
- DH秘钥交换算法
- Java nio系列五
- 线段树模板
- java学习日志(3)递归、面向对象的思想、API、Scanner、类及方法、栈、堆
- java中foreach与迭代器
- android 音频视频播放案列
- Struts2学习(六)国际化配置
- 【HDU】-1325-Is It A Tree?(并查集)
- 判断json是jsonobject还是jsonarray
- MFC 复制另一个工程中的对话框资源
- Angularjs的$resource使用
- 个人blog之一