How to get the Class of selected object in Blender 2.8?
The selected class is not retrievable for every object, as that code is defined in C, not in Python. But the body of your question asks for the type anyways, so here you go:

objectType = bpy.context.object.type


This will yield one of the following strings in Blender2.8 (which I assume you use, as in 2.79 there are no Grease Pencil Objects):

"MESH"
"CURVE"
"SURFACE"
"META"
"FONT"
"ARMATURE"
"LATTICE"
"EMPTY"
"GPENCIL"
"CAMERA"
"LIGHT"
"SPEAKER"
"LIGHT_PROBE"


To get an updated type list (as the API changes sometimes), you can use the following code with an active object:

import bpy

types = bpy.context.object.bl_rna.properties['type'].enum_items

for t in types:
    print('type %s: %s' %(t.identifier, t.name))


Result in py console (2.8)

Convenience Variables: C = bpy.context, D = bpy.data

&gt;&gt;&gt; C.object.__class__
&lt;class 'bpy_types.Object'&gt;

&gt;&gt;&gt; types = C.object.bl_rna.properties['type'].enum_items
&gt;&gt;&gt; 
&gt;&gt;&gt; for t in types:
...     print('type %s: %s' %(t.identifier, t.name))
...     
type MESH: Mesh
type CURVE: Curve
type SURFACE: Surface
type META: Meta
type FONT: Font
type ARMATURE: Armature
type LATTICE: Lattice
type EMPTY: Empty
type GPENCIL: GPencil
type CAMERA: Camera
type LIGHT: Light
type SPEAKER: Speaker
type LIGHT_PROBE: Probe