Java学习day7面向对象编程1-对象和类
一、Java编程中对象和类的概念
1,什么是类?
答:类是客观存在的,抽象的,概念的东西。
2,什么是对象?
答:对象是具体的,实际的,代表一个事物。例如:车是一个类,汽车,自行车就是他的对象。
关于类与对象的描述:类是对象的模版,对象是类的一个个体
3.类的语法格式
修饰符 class 类名{
属性声明;
方法声明;
}
说明:1.修饰符public:类可以被任意访问
2.类的正文要用{ }括起来
4.对象是根据类创建的。在Java中,使用关键字new来创建一个新的对象。创建对象需要以下三步:
1.对象声明:类名 对象名;//声明一个对象,包括对象名称和对象类型。2.实例化: 对象名 = new 类名(); new作用:分配内存空间。3.初始化:使用new创建对象时,会调用构造方法初始化对象。
public class Person{//创建一个可以被任意访问的person类
//属性声明;也叫成员变量声明。(类的成员变量可以先声明,不用初始化,类的成员变量是有初始值的,例如String的默认值是null,int的默认值是0)
String name;//声明属性name
int age;//声明成员变量age
//方法声明;也叫函数声明。
public void showName(){//声明方法showName()
System.out.println(name);
}
public int getAge(){//声明方法showAge(),如果是一个有返回值的方法,那么方法体的最后一行一定是返回相对应的数据,使用return关键字,返回的数据类型与方法定义的一致,例如返回age值,上文定义方法为int类型
return age;
}
//主程序
public static void main(String[] args){//实例化Person类,也就是创建Person对象
Person per = new Person();//声明一个Person类型的变量,变量名为per,new Person()就是实例化Person类
per.name = "彭祖";//给per对象的name属性赋值
per.showName();//对象的方法的调用
per.age = 800;//给per对象的age属性赋值
int a = per.getAge();
System.out.println(a);
}
}
输出结果为:

public class Student{
public String name;
public int age;
public String course;
public String interest;
public void showInfo(){
System.out.println("姓名:" + name);
System.out.println("年龄:" + age);
System.out.println("课程:" + course);
System.out.println("兴趣:" + interest);
}
//主程序测试
public static void main(String[] args){
Student stu = new Student();
stu.name = "小明";
stu.age = 18;
stu.course = "Java语言";
stu.interest = "小暗";
stu.showInfo();
}
}
输出结果为:

三、对象的产生
1.当一个对象被创建时,会对其中各种类型的成员变量自动进行初始化赋值,除了基本的数据类型之外的变量类型都是引用类型。

2.匿名对象
public class Person{
public String name;
public int age;
public String sex;
public void study(){
System.out.println("studying");
}
public void showAge(){
System.out.println(age);
}
public int addAge(int i){
age += i;
return age;
}
public static void main(String[] args){
Person p = new Person();
p.name = "张飞";
p.age = 35;
p.sex = "男";
p.study();
int a = p.addAge(2);
System.out.println("a:" + a + " P.age" + p.age);
}
}
打印结果为:

public class Cricle{
public double area(double r){
return 3.14 * r * r;
}
public static void main(String args[]){
double area = new Cricle().area(2);
System.out.println("半径为2的圆的面积是:" + area);
}
}
打印结果为:

四、类的访问机制
1.在一个类中的访问机制:类中的方法可以直接访问类中的成员变量。(例外:static方法访问非static的成员变量,编译不通过)
2.在不同类中的访问机制:先创建要访问的类的对象,再用对象访问类中定义的成员。
五、面向对象思想落地法则(一)
1.关注于类的设计,即设计类的成员:属性、方法
2.类的实例化,及创建类的对象(例如:Person p = new Person())
3.通过“对象.属性”、“对象.方法”执行
Java学习day7面向对象编程1-对象和类的更多相关文章
- Java学习之==>面向对象编程 Part2
一.封装 封装,即隐藏对象的属性和实现细节,仅对外公开接口,控制在程序中属性的读和修改的访问级别:将抽象得到的数据和行为(或功能)相结合,形成一个有机的整体,也就是将数据与操作数据的源代码进行有机的结 ...
- JAVA学习:面向对象编程
"算法+数据结构=程序"是一句经典名言,这句话很直接的说明了程序的本质:处理数据.产生结果.即便是最简单的HelloWorld程序,我们也可以将字符串"HelloWorl ...
- Java学习之==>面向对象编程 Part1
一.面向对象与面向过程 1.面向过程 角度是功能,以方法为最小单位,思考的是具体怎么做. 2.面向对象 角度是抽象,以类为最小单位,思考的是谁来做. 3.示例:“小明去上班” 面向过程 起床,刷牙洗脸 ...
- Java学习笔记(2)--- 对象和类入门,java包,this 和 super区别
1.对象和类(Object and class): 一个 Java 程序可以认为是一系列对象的集合,而这些对象通过调用彼此的方法来协同工作. 面对对象编程是java非常重要的一部分,作者本身之前学过c ...
- Java学习_面向对象编程
抽象类 一个class定义了方法,但没有具体执行代码,这个方法就是抽象方法,抽象方法用abstract修饰.因为抽象类本身被设计成只能用于被继承,因此,抽象类可以强迫子类实现其定义的抽象方法,否则编译 ...
- Java学习day9面向对象编程2-方法的可变个数的参数和方法的参数传递
一.方法的可变个数的参数. 问题:我们能够打印的信息都是来源于方法的参数,也就是形参的传递.那如何要给方法传递不同的参数? .1.采用数组形参来定义方法 public static void test ...
- Java学习day8面向对象编程2-类的属性和方法
一.类的属性 1.语法格式 修饰符 类型 属性名 = 初值 说明:修饰符private:该属性只能由该类的方法使用.在同一类内可见.使用对象:变量.方法. 注意:不能修饰类(外部类) 修饰符pu ...
- 0024 Java学习笔记-面向对象-包装类、对象的比较、String常量池问题
包装类 基本类型-->包装类 byte-->Byte short-->Short int-->Integer long-->Long char-->Characte ...
- [core java学习笔记][第四章对象与类]
4.3 用户自定义类 4.3.1 类数组的声明 需要两次new Employee[]=staff=new Employedd[3]; staff[0]=new Employedd(参数列表); sta ...
随机推荐
- 1Mbps代表每秒传输1,000,000位(bit
1Mbps代表每秒传输1,000,000位(bit
- MySQL新增用户及赋予权限
创建用户 USE mysql; #创建用户需要操作 mysql 表 # 语法格式为 [@'host'] host 为 'localhost' 表示本地登录用户,host 为 IP地址或 IP 地址区间 ...
- FCC 成都社区·前端周刊 第 9 期
1. Node.js 10 将带来什么? Node.js 10 的第一个版本将于本周二(4 月 24 日)发布,并将在 10 月份推出 LTS 版本,将带来哪些更新? N-API,持续 HTTP/2 ...
- vue开发知识点总结
一.vue介绍 Vue.js 是一套构建用户界面(UI)的渐进式JavaScript框架,是一个轻量级MVVM(model-view-viewModel)框架. 二.数据绑定 最常用的方式:Musta ...
- AGC007题解
发现自己思维能力又跟不上了...做题有点吃力...所以回归AGC刷题计划... AGC040506都写了一部分题然后懒得补全了,所以从07开始做吧.大概是从C开始. C 这也太人类智慧了吧... 我先 ...
- Git回滚到指定的commit
查看历史commint $ git log (可以记下sha码) 回退命令: $ git reset --hard HEAD^ 回退到上个版本$ git reset --hard HEAD~3 回退到 ...
- 大数据学习笔记之初识Hadoop
1.Hadoop概述 1.1 Hadoop名字的由来 Hadoop项目作者的孩子给一个棕黄色的大象样子的填充玩具的命名 Hadoop的官网:http://hadoop.apache.org . 1.2 ...
- [洛谷P4107] HEOI2015 兔子与樱花
问题描述 很久很久之前,森林里住着一群兔子.有一天,兔子们突然决定要去看樱花.兔子们所在森林里的樱花树很特殊.樱花树由n个树枝分叉点组成,编号从0到n-1,这n个分叉点由n-1个树枝连接,我们可以把它 ...
- Linux内核设计与实现 总结笔记(第十三章)虚拟文件系统
一.通用文件系统接口 Linux通过虚拟文件系统,使得用户可以直接使用open().read().write()访问文件系统,这种协作性和泛型存取成为可能. 不管文件系统是什么,也不管文件系统位于何种 ...
- 跳转控制语句continue
1 continue的使用场景: 1.1 在循环语句中 注意:离开使用场景的存在是没有意义的 2 continue的作用: 2.1 单层循环对比break,然后总结两者的区别 2.1.1 break ...