Java基础编程(初级部分)

1. 类与对象

1.1 入门

一个程序就是一个世界,有很多事物(对象[属性, 行为])
类与对象的关系示意图:

1.2 类和对象的区别和联系

1) 类是抽象的,概念的,代表一类事物,比如人类,猫类.., 即它是数据类型.
2) 对象是具体的,实际的,代表一个具体事物, 即 是实例.
3) 类是对象的模板,对象是类的一个个体,对应一个实例

1.3 对象在内存中存在形式(重要的)

1.4 属性/成员变量/字段

1. 基本介绍:
从概念或叫法上看: 成员变量 = 属性 =field(字段) (即 成员变量是用来表示属性的,本文中,统一叫 属性)
2. 属性是类的一个组成部分,一般是基本数据类型,也可是引用类型(对象,数组)。比如我们前面定义猫类的int age就 是属性

注意事项:
1. 属性的定义语法同变量,示例:访问修饰符属性类型属性名;
        控制属性的访问范围 有四种访问修饰符public,proctected,默认,private。
2. 属性的定义类型可以为任意类型,包含基本类型或引用类型
3. 属性如果不赋值,有默认值,规则和数组一致。具体说:
        int 0 short 0,byte 0,long 0,float 0.0,double 0.0,char \u0000, boolean false,String null。

1.5 如何创建对象

1) 先声明再创建 Cat cat ; //声明对象 cat         cat = new Cat(); //创建
2) 直接创建 Cat cat = new Cat();

1.6 如何访问属性

基本语法  对象名.属性名;
类和对象的内存分配机制 : 

1.7 类和对象的内存分配机制

Java内存的结构分析
1) 栈:一般存放基本数据类型(局部变量)
2) 堆:存放对象(Catcat,数组等)
3) 方法区:常量池(常量,比如字符串),类加载信息

Java创建对象的流程简单分析

Person p =new Person();
 p.name=“jack”;
 p.age=10

1) 先加载Person类信息(属性和方法信息,只会加载一次)
2) 在堆中分配空间,进行默认初始化(看规则)
3) 把地址赋给p,p就指向对象
4) 进行指定初始化, 比如 p.name=”jack” p.age=10

2. 成员方法

2.1 基本介绍

        在某些情况下,我们要需要定义成员方法(简称方法)。比如人类:除了有一些属性外(年龄,姓名..),我们人类还有一 些行为比如:可以说话、跑步..,通过学习,还可以做算术题。这时就要用成员方法才能完成。现在要求对Person类完善。

2.2 成员方法快速入门

 //1)添加speak成员方法,输出“我是一个好人”
 //2)添加cal01成员方法,可以计算从1+..+1000的结果
//3)添加cal02成员方法,该方法可以接收一个数n,计算从1+..+n的结果
//4)添加getSum成员方法,可以计算两个数的和
public class Method01{
 //编写一个main方法
public static void main(String[]args){
 //方法使用
//1.方法写好后,如果不去调用(使用),不会输出
//2.先创建对象,然后调用方法即可
Person p1 = new Person();
 p1.speak();//调用方法
p1.cal01();//调用cal01方法
p1.cal02(5);//调用cal02方法,同时给n=5
 p1.cal02(10);//调用cal02方法,同时给n=10
 //调用getSum方法,同时num1=10,num2=20
//把 方法 getSum 返回的值,赋给 变量 returnRes
 int returnRes = p1.getSum(10, 20);
 System.out.println("getSum 方法返回的值=" + returnRes);
 } }


class Person {
 String name;
 int age;
 //方法(成员方法)
 //添加speak 成员方法,输出 “我是一个好人”
 //解读
//1. public 表示方法是公开
//2. void : 表示方法没有返回值
//3. speak() : speak 是方法名, () 形参列表
//4. {} 方法体,可以写我们要执行的代码
public void speak() {
 System.out.println("我是一个好人");
 }
 //5. System.out.println("我是一个好人"); 表示我们的方法就是输出一句话
//添加cal01 成员方法,可以计算从 1+..+1000的结果
public void cal01() {
 //循环完成
int res = 0;
 for(int i = 1; i <= 1000; i++) {
 res += i;
 }
 System.out.println("cal01 方法 计算结果=" + res);
 }
 //添加cal02 成员方法,该方法可以接收一个数n,计算从 1+..+n 的结果
//解读
//1. (int n) 形参列表, 表示当前有一个形参 n, 可以接收用户输入
public void cal02(int n) {
 //循环完成
int res = 0;
 for(int i = 1; i <= n; i++) {
 res += i;
 }
 System.out.println("cal02 方法 计算结果=" + res);
 }
 //添加getSum 成员方法,可以计算两个数的和
//解读
//1. public 表示方法是公开的
//2. int :表示方法执行后,返回一个 int 值
//3. getSum 方法名
//4. (int num1, int num2) 形参列表,2 个形参,可以接收用户传入的两个数
//5. return res; 表示把 res 的值, 返回
public int getSum(int num1, int num2) {
int res = num1 + num2;
 return res;
 } }

2.3 方法的调用机制原理:(重要!-示意图!!!)

2.4 成员方法的定义

        访问修饰符  返回数据类型  方法名(形参列表..){//方法体
                语句;
                return返回值;
         }

1) 形参列表:表示成员方法输入cal(int n),getSum (int num1,int num2)
2) 返回数据类型:表示成员方法输出,void表示没有返回值
3) 方法主体:表示为了实现某一功能代码块
4) return语句不是必须的。

2.5 注意事项

 public class MethodDetail{
 public static void main(String[]args){
 AA a = new AA();
 int[] res = a.getSumAndSub(1,4);
 System.out.println("和="+res[0]);
 System.out.println("差="+res[1]);
 //细节:调用带参数的方法时,一定对应着参数列表传入相同类型或兼容类型的参数
byte b1=1;
 byte b2=2;
 a.getSumAndSub(b1,b2);//byte->int
 //a.getSumAndSub(1.1,1.8);//double->int(×)
 //细节:实参和形参的类型要一致或兼容、个数、顺序必须一致
//a.getSumAndSub(100);//× 个数不一致
a.f3("tom", 10); //ok
 //a.f3(100, "jack"); // 实际参数和形式参数顺序不对
} }

 class AA{
 //细节: 方法不能嵌套定义
public void f4() {
 //错误
// public void f5() {
 // }
 }
 public void f3(String str,
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值