java 笔记 类和对象

来源:互联网 发布:淘宝是什么 编辑:程序博客网 时间:2024/04/27 18:30
Java面向对象(OOP)
   
1.面向过程与面向对象
  面向过程以函数解决问题
  面向对象优先得到对象----处处皆对象
2.类和对象区别
  (1)类是抽象的,对象是具体的
  (2)类可以生成对象
  (3)类是由对象分析特点生成一个抽象概念
3.类的组成
   属性:静态特点,由变量来充当
   方法:动态特点
4.由类得到对象(实例化)
5.局部变量与全局变量(属性)区别
  局部变量必须声明、赋值才能操作
  属性是有默认值,float-->0.0f  double-->0.0d char-->'/u0000'
                  整形-->0 boolean--->false 引用类型-->null
6.属性隐藏
  如果出现属性与局部变量冲突,采用就近原则
 -----小结---- 利用数组、类、对象实现数据结构中栈--------
 栈:
   静态特点:
         存储结构--数组
         元素个数--size
   动态特点:
         入栈();
         出栈();
7.方法重载:在同一个类中,方法名相同,参数列表(参数的个数或参数的数据类型)不一样
  java编译器在编译时可以区别方法重载,成为编译多态
     构造方法重载
     成员方法重载


8.构造函数
     类 ----构造函数------>对象
     8.1构造函数只能被new关键字调用
     8.2构造函数也可以重载
     8.3如果类中没有提供构造函数,系统会增加一个默认的无参构造
     8.4如果为类增加了构造函数,则系统不会再增加默认的无参构造
9.对象内存创建过程
  1)开辟空间,取默认值
  2)初始化属性
  3)调用构造函数
  
  Cat c;//此句并未在内存中开辟空间
  内存分配
     栈与堆区别:栈空间比较小,速度特别快,用来基本类型数据
                 堆空间比较大,速度较慢,用来存放引用类型数据
     java中只要new一下,那么堆上面就会出现一个新对象
10方法的参数传递(值传递)
   参数为基本类型的数据,操作值不会被保留
   参数为引用类型的数据,操作状态会被永久保留下来
11.this关键字的用法
   1)区别同名变量
   2)可以在一个构造函数中调用另外一个构造函数,这句话需要
     放在代码的首行
===============================================
面向对象三大特性:封装、继承、多态
        两大机制:垃圾回收器、JVM机制
1.封装:为了保护对象的特点(属性、方法)
    对于属性保护,要求属性写成私有的,并且提供Getter(读)/Setter(写)方法
    对于方法保护,要求对于复杂功能,会拆分很多小方法,并且将小方法定义为private,
       对外提供一个public的方法
  对于方法的封装
  class My
{
//打印输出100以内所有的素数
public void printS(){
for(int i=2;i<=100;i++){
if(isPrime(i)){
System.out.println(i);
}
}
}


private boolean isPrime(int num){
boolean flag=true;
for(int i=2;i<num;i++){
if(num%i==0){
flag=false;
break;
}
}
return flag;
}
}
对于属性的封装
class Dice
{
private int num;


public void roll(){
//Math.random()===  [0,6)   1 2 3 4 5 6
num=(int)(Math.random()*6)+1;
}
//写
public void setNum(int num){
if(num<=0||num>6){
this.num=1;
}else{
this.num=num;
}
}
//读的方法
public int getNum(){
return this.num;
}
}
//栈修改为保存 Person


      
0 0