java基础-面向对象

这是本人学的真正意义上的博客,本人也是下了很大的决心。只是想让自己的知识得到提炼。
纯粹的java当中数值不能给boolean赋值

System.out.println(“\u4e2d\u56fd”);//中国 这个我也是刚看到
Char : \t \b \
整数型 :byte short int long 符号位(1)+数值位(n-1)
8 16 32 64
int num1 = 25; //10进制赋值 DEC
int num2=025; //8进制赋值 OCT
int num3=0x25 //16进制赋值 HEX
int num4=0b1011 //2进制赋值 jdk7.0 BIN

浮点型: 符号位+幂指位+数值位
float
32(1+8+32) F/f
Double
64(1*11+52) D/d
67.25 =>
得到符号位:0
整数部分:64+2+1=1000011
小数部分:0.01
1000011.01=>科学计数法:1.00001101*2(6)
幂指位:01111111=127+6 =133=128+4+1=10000101
数值位23:00001101000000000000000
0 10000101 00001101000000000000000
*计算机当中 2.0-1.1等于多少? 为什么? 如何解决?
0.8999999999 是因为计算机里无法精确的存储浮点类型的数据所造成的 我们如果想精确地来计算出这个数值,只需要每个数值向左位移一位就可以,把它们先变成整数,最后结果再右移一位即可
引用类型 (自定义类型—— 自己写的类型Object)
运算符:
+ - * / %

% 如果%2的话可能出现 -1 0 1;

& | && ||
[& &&] [&逻辑非短路运算符] [&&逻辑短路运算符]
[当通过前面的条件 能够得出最终结论的时候 短路运算符会舍弃之后没有必要的无用功]

& | ^ [按位运算符]
8&5=>0
1000
&0101
0000
*:当一个正数%2的n次方数的时候 将完全等价于&(这个2的n次方数-1)
%2 %4 &8 %16 %32
&1 &3 &7 &15 &31
*:HashSet HashMap
*:当实现权限控制模块的时候
Unix:
1 代表执行权限
2 代表写入权限
3 代表读取权限
Java当中修饰符:public=1 static 8 public static = 1+8 static public = 8+1
* ^ 按位异或运算符
如何不借助第三块空间交换两个变量的值
Int a=3
Int b=5
a=a^b;
b=a^b;
a=a^b;
//a=5 b=3
1st:如何不借助第三块空间交换两个变量的值
2nd:计算机当中如何最高效的求出2的3次方
3rd :计算144-237之间所有数字累加的和 禁用循环
2nd *2 *4 *8 *16 *32
<<1 <<2 <<3 <<4 <<5
/2 /4 /8 /16 /32

1 >>2 >>3 >>4 >>5
java是面向对象的程序设计语言,面向对象的两个重要概念:类(class)和对象(Object,也被称为实例,instance)
归纳一下知识点:封装继承多态,方法重载覆盖这是我听别人说的对联
我们下面就来解析一下这个对联。
封装:面向对象的三大特征之一,指的是将对象的状态信息隐藏在对象的内部,不允许外部程序直接访问对象内部信息,而是通过该类所提供的方法来实现对内部信息的操作和访问。
java提供了三个访问控制符,但是还有一个默认的控制符,所以有四个,访问控制级别由小到大
private(当前类访问权限)—default(包访问权限)—-protect(子类访问权限)—–public(公共访问权限)
封装对人类的开发者和使用者都有好处
对于类的开发者:
能够让数据得到保密,得到隐藏 从而更加安全
对人类的使用者:
能够让使用者将精力 全部集中在核心业务逻辑上
类的开发应当高内聚,低耦合
内聚:独立完成功能的能力
耦合:模块与模块之间的依赖关系
“耦合”无处不在
继承:OOP中最为重要的概念,达到了非常有效的代码重用效果,使得开发效率变得很高!同时也因此,造成了OOP语言执行效率低下,不免被C/C++程序员嘲笑。在Java语言中,两个类之间通过extends关键字实现继承。我们来看个继承的实例:

   public class Test extends Base{

    static{
        System.out.println("test static");
    }

    public Test(){
        System.out.println("test constructor");
    }

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

class Base{

    static{
        System.out.println("base static");
    }

    public Base(){
        System.out.println("base constructor");
    }
} 
上面的代码输出的结果`

base static
test static
base constructor
test constructor`
Static:下面在介绍,上面的main方法中值new了一个Test对象但是吧base的构造方法也加载进来,这就是继承,Test继承的Base,Test继承了Base除(private修饰)的方法,变量。

*关于私有属性 有没有继承 能不能继承 算不算继承
私有属性在子类的存储空间当中它是切实存在的
但是由于java当中创建对象的流程所决定的
但是不能继续使用了 因此不能算作继承得到的
Private 访问控制权限修饰符
*: 在你日后写代码的每一天当中 只要涉及到代码重用 应当考虑继承实现

多态:polymorphism 
       静态多态:指的是java当中的方法重载
       动态多态:一个对象总有多种称呼它的类型 - 一个事物总有多种存在的形态
       *:动态多态出现肯定会伴随这一种语法:
                      父类类型=子类对象:
                      接口类型 =实现类对象:

       多态指的是子类对象 可以直接赋给父类变量,但运行时依然表现出子类的行为特征,这意味着同一个类型的对象在执行同一个方法时,可能表现出多种行为特征

多态需要注意什么?
对象是在内存当中客观存在的 不会因为改变称呼它的类型而发生任何变化
但是编译器看等号左边的类型来进行语法检查

多态存在的价值?
*:能够让先开发完成的类型在不做任何修改的情况下 跟之后开发出来的新类型结合起来使用 而且不用做任何修改
*:多态的存在还能够降低人和人甚至组和组之间的耦合关系
static:我感觉我不需要写了,,这篇文章就是我想说的
http://blog.csdn.net/zhangerqing/article/details/41810491
内部类:请看看这个吧
http://blog.csdn.net/zhangerqing/article/details/8298603
我感觉写完还是很烂,因为关灯了,寝室11点关灯,不想影响室友睡觉,只能就这样了,最后引用了两篇别人的博客。主要是我不想在误导读者了,希望各位大神指教。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值