JAVA学习博客---2015.5

上一次的学习博客写的和流水账差不多,有点生硬的和背目录一样,所以既然学习的目的是程序,那么这个月的学习博客就用程序来说点东西吧。这个月看了一些C和JAVA的视频,开始看别人写的程序,能看的懂但是自己去写的话前后逻辑还有方法类的使用不是很清楚。好吧,先去膜拜大神,一步一步来吧。

先来说一个C的程序。这个程序是把一个十进制的数字转成二进制的编码,十进制当中是逢十进一,二进制逢二进一,无论是什么样的语言写的任何程序,在计算机里面的记录方法均为二进制。

#include<iostream>
using namespace std;
int main()
{
    int T;
    cin >> T;
    while(T--)
    {
        unsigned int n;
        char bas[30];
        cin >> n;
        unsigned int k = 0;
        if(n == 0)
            cout<<0;
        else
        {
            while(n)
            {
                if(n & 1)
                    bas[k++] = ‘1‘;
                else
                    bas[k++] = ‘0‘;
                n >>= 1;
            }
        }
        for(int i=k-1;i >= 0;i--)
        {
            cout << bas[i];
        }
        cout << endl;
    }
}

 #include<iostream>
这个是C的标准I/O头文件,标准库定义了
4 个 IO 对象。处理输入时使用命名为 cin(读作 see-in)的 istream 类型对象。这个对象也称为标准输入。处理输出时使用命名为 cout(读作
see-out)的 ostream 类型对象,这个对象也称为标准输出。

程序里面有输入输出的内容所以这个是必不可少的                                                                                    
using namespace std;

namespace是指标识符的各种可见范围。命名空间用关键字namespace
来定义。命名空间是C++的一种机制,用来把单个标识符下的大量有逻辑联系的程序实体组合到一起。此标识符作为此组群的名字。

即让std内定义的所有标示符都是有效,相当于一个全局变量。

int
char

这些标示符是用来声明变量的类型,int整数,char符号。在这个程序当中声明了T为int类型,把bas为char字符变量。

if
else

标准的if语句,即如果,不然。用来建立条件入口。

while

循环语句,计算机的一种基本循环模式。当满足条件时进入循环,不满足跳出。这里的程序要求用户输入一个变量的T,入口条件当T--  
unsigned int  在函数体内用到了unsigned int, 是使用无符号的整数类型。

char bas[30];

建立一个数组长度为30的char 数组。

for(int i=k-1;i >= 0;i--)

for循环条件入口,当整数i等于k-1,且i>=0,就i--,若第一个条件为假,后面的算式就不执行了。

看明白这个程序还有一个很重要的东西就是明白十进制转化为二进制的原理,基本的算法是这样的。

用x表示十进制的x,假定x变成2进制后的数为三位abc,其中a为最高位,b为次高位,c为最低位。

则有 x = a*2^2 + b*2^1 + c*2^0= 4a+2b+c所以    x%2 = c,    x/2 = a*2 + b令x=x/2,则x=a*2+b  x%2 = b,  x/2 = a令x=x/2,则x=a  x%2 = a  x/2 = 0故每一步的余数为:  c, b, a把它们颠倒,就得到a,b,c

原理只有一条,可以证明/看出每次除以2的余数正好是2进制的每一个数。(……看了好半天……)
这个是一个非常短的程序,一个很实用的小工具,它可以作为一个方法放到一个class当中,也可以把这个当做父类做继承。
 
 
现在来说一个JAVA程序。
import javax.swing.JOptionPane; // program uses JOptionPane

public class Converter {
    public static void main(String args[]) {
        String firstNumber;
        double number1 = 0;
        double number2 = 0;
        boolean loop = true;
        while (loop) {
            firstNumber = JOptionPane.showInputDialog("请输入华氏温度");
            try {
                number1 = Double.parseDouble(firstNumber);
                loop = false;
            } catch (NumberFormatException e) {
                // (2)当用户输入错误数据时候,提示用户输入错误,并要求用户重新输入内容。
                JOptionPane.showMessageDialog(null, "输入错误,请重新输入华氏温度.", "输入",
                        JOptionPane.PLAIN_MESSAGE);
            }
        }

        // 摄氏度=(5/9)*(华氏度-32) , 即 摄氏度=(华氏度-32)÷1.8
        // secondNumber = JOptionPane.showInputDialog("输入被乘数");

        number2 = (number1 - 32) / 1.8;
        JOptionPane.showMessageDialog(null, number1 + "华氏度 = " + number2
                + "摄氏度", "结果", JOptionPane.PLAIN_MESSAGE);

    } // end method main
} // end class Addition

  

这是一个将华氏度转化成为一个摄氏度的程序

//后面是注释,程序不读这些内容

当然这个程序的算法也是基于华氏度和摄氏度的转化算法

摄氏度=(5/9)*(华氏度-32)

程度考虑到用户输入错误的情况。

感觉C和JAVA有种不一样的使用方法,JAVA喜欢调用很多已有的东西,C喜欢设定一些规则。

-------------------------------------------------------------------------------

因为主要是去学JAVA的,所以现在主要看别人写的JAVA代码,先去明白基本的规则,目前还是很菜,在敲别人的代码的同时去想别人为什么这么写,这样的设计有什么好处,或者这些代码能不能够作为其他程序的一个方法。TUT。

时间: 2024-08-24 15:38:00

JAVA学习博客---2015.5的相关文章

JAVA学习博客----2015.4

这是开始写的第一篇学习博客,记录一下每个月的学习进度和掌握程度,因为这是第一次写学习博客而且已经看编程方面的书已经有几个月了,所以这一篇学习博客可能看似有些乱或者篇幅太长.从十二月的<程序员教程>到现在的<JAVA核心技术卷一基础知识>,关于编程的书在看的目前是四本(<程序员编程><C Primer Plus><C++ Primer Plus><JAVA核心技术>卷一),目前在办公室看的是JAVA核心技术,在家看的目前是C++,学习进

JAVA学习博客---2015-8

八月份的学习博客,今天已经是九月四号了,补上吧.现在我又回到C++了,JAVA的基本的东西都懂了,但是更好的掌握JAVA,我必须原路返回去学习C++,当初为了更快的学JAVA,其实我得C++都是跳着看过的,OMG,出来混迟早都是要还的,所以注定我还是要和C++呆上一段时间,希望在十二月之前能够完全掌握C++.好了,接下来老生常谈,八月份的成果. 其实相比之前几个月,这个月的进度是最慢的了,JAVA NOTE做到了第三章我就回来看C++了,同样是OOP,但是更熟练的操作,许多东西还是C++说的更明

JAVA学习博客---2015-6

JAVA核心技术卷一第一遍看得差不多了,应该是五月初开始看的,用了两个月的中午时间看完的,一共七百多页,接下来还是需要再看一遍,不懂的还是有很多. JAVA和C++一样是面向对象OOP的语言,不同于命令行语言shell也不同于描述性的语言.像是WPS表格一样,汇聚了很多的函数功能,在JAVA里面这些功能强大的方法叫做class,类.类里面有各种各样操纵类的方法,method.和CPP一样,JAVA核心技术的卷一部分也是说了基础的部分,从JAVA设计概述到运行JAVA程序的设计环境(我一般用在线环

java JDK8 学习笔记——助教学习博客汇总

java JDK8 学习笔记——助教学习博客汇总 1-6章 (by肖昱) Java学习笔记第一章——Java平台概论 Java学习笔记第二章——从JDK到IDEJava学习笔记第三章——基础语法Java学习笔记第四章——认识对象 Java学习笔记第五章——对象封装 Java学习笔记第六章——继承与多态 7-10.12.14章 (by吴子怡) Java学习笔记JDK8>学习总结 11.13.15-18章 (by宋宸宁) 第11章 第13章第15章第16章第17章第18章

Java 开源博客——B3log Solo 0.6.7 正式版发布了!

Java 开源博客 -- B3log Solo 0.6.7 正式版发布了!欢迎大家下载. 另外,欢迎观摩 B3log 团队的新项目:Wide,也非常欢迎大家参与进来 :-) 特性 基于标签的文章分类 Ping Google Blog Search Engine 博客/标签 Atom/RSS 输出 Sitemap 输出 评论回复及邮件提醒 自定义页面 置顶/相关/随机/站外相关文章 文章.页面永久链接(Permalink) 文章草稿夹.签名档.更新提示 缓存管理 多用户 多语言 换肤 插件 Met

Java 开源博客——B3log Solo 0.6.6 正式版公布了!

Java 开源博客 -- B3log Solo 0.6.6 正式版公布了!欢迎大家下载. 该版本号引入了数据库连接池:Druid. 另外,欢迎观摩 B3log 团队的新项目:Noty,也很欢迎大家參与进来 :-) 特性 基于标签的文章分类 Ping Google Blog Search Engine 博客/标签 Atom/RSS 输出 Sitemap 输出 评论回复及邮件提醒 自己定义页面 置顶/相关/随机/站外相关文章 文章.页面永久链接(Permalink) 文章草稿夹.签名档.更新提示 缓

最值得收藏的java技术博客(Java篇)

第一个:java_my_life 作者介绍:找不到原作者信息.大概做了翻阅全部是2012年的博客. 博客主要内容:主要内容是关于Java设计模式的一些讲解和学习笔记,在相信对学习设计模式的同学帮助很大.在一望无际的Java博文中有那么一两篇JavaScript文章,就算两篇Javascript的质量不是很高,其它教程也是能很好的帮助到在学习中的朋友. 博客关键词:JAVA与模式.简单工厂模式.工厂方法.抽象工厂.单例.建造.原型.适配器.合成.迭代.观察者.模板方法.策略.不变.桥梁.门面.代理

学习博客 启动日记

今天,1月27日,应该是我值得纪念的一个日子,我决定真正开始学习android开发并坚决要做出成绩的日子. 以前,自己总是犹豫不决,停留在想,未必真的去做.这次,我决定我要放手一搏.为了以后的幸福,为了支持我,懂我的人,为了那些一直陪伴我的人我觉得我应该放手一搏. 我现在一直在跟着极客出的安卓开发教学视频,我打算以两套视频为基础,吃透一部,另一部作为补充.这样,我希望自己能够在很短的时间内掌握安卓开发的能力. 说到做学习博客,我还是一直没有底的,因为毕竟自己是新手,很多地方都不懂.会不会误导大家

Java 学习笔记(2015.7.13~17)

Java 学习笔记(2015.7.13~17) Java this关键字 表示本类中的属性,调用本类中的方法 class Person {        private String name;         private int age;         public Person(String name, int age) {         this.name = name;//调用本类中的属性         this.age = age;//同上} //get&set方法: